Repository: tintoy/dotnet-kube-client Branch: develop Commit: 6dccfe7e6733 Files: 1203 Total size: 10.2 MB Directory structure: gitextract_kh6f5935/ ├── .editorconfig ├── .gitignore ├── GitVersion.yml ├── ISSUE ├── KubeClient.sln ├── LICENSE ├── NuGet.config ├── Package-README.md ├── README.md ├── azure-pipelines.yml ├── global.json ├── samples/ │ ├── ConfigFromConfigMap/ │ │ ├── ConfigFromConfigMap.csproj │ │ ├── Program.cs │ │ └── ProgramOptions.cs │ ├── DeploymentWithRollback/ │ │ ├── DeploymentWithRollback.csproj │ │ ├── Program.cs │ │ └── ProgramOptions.cs │ ├── Directory.Build.props │ ├── ExtensionsSample/ │ │ ├── ExtensionsSample.csproj │ │ ├── Program.cs │ │ └── thing-configmap.yaml │ ├── WatchEvents/ │ │ ├── Program.cs │ │ ├── ProgramOptions.cs │ │ └── WatchEvents.csproj │ └── noob-exec/ │ ├── NoobExec.csproj │ ├── Program.cs │ └── ProgramOptions.cs ├── src/ │ ├── Common.props │ ├── KubeClient/ │ │ ├── ApiMetadata/ │ │ │ ├── ApiMetadataExtensions.cs │ │ │ ├── KubeApiMetadata.cs │ │ │ ├── KubeApiMetadataCache.cs │ │ │ ├── KubeApiPathMetadata.cs │ │ │ └── KubeApiVerb.cs │ │ ├── AssemblyVisibility.cs │ │ ├── ClientFactoryExtensions.cs │ │ ├── KubeApiClient.cs │ │ ├── KubeApiClientLoggingExtensions.cs │ │ ├── KubeApiException.cs │ │ ├── KubeClient.csproj │ │ ├── KubeClientOptionsExtensions.cs │ │ ├── KubeResourceUpdateExtensions.cs │ │ ├── MessageHandlers/ │ │ │ ├── BasicAuthenticationHandler.cs │ │ │ ├── BearerTokenHandler.cs │ │ │ ├── CommandBearerTokenHandler.cs │ │ │ └── StaticBearerTokenHandler.cs │ │ ├── Models/ │ │ │ ├── ContractResolvers/ │ │ │ │ └── KubeContractResolver.cs │ │ │ ├── Converters/ │ │ │ │ ├── DynamicKubeObjectV1Converter.cs │ │ │ │ ├── DynamicKubeResourceV1Converter.cs │ │ │ │ ├── Int32OrStringV1Converter.cs │ │ │ │ ├── MicroTimeV1Converter.cs │ │ │ │ └── ResourceEventV1Converter.cs │ │ │ ├── DeleteOptionsV1.cs │ │ │ ├── DeletePropagationPolicy.cs │ │ │ ├── ExecCredentialV1Beta1.cs │ │ │ ├── IResourceEventV1.cs │ │ │ ├── Int32OrStringV1.cs │ │ │ ├── JSONSchemaPropsOrBoolV1.cs │ │ │ ├── JSONSchemaPropsOrStringArrayV1.cs │ │ │ ├── JSONSchemaPropsV1.cs │ │ │ ├── KubeActions.cs │ │ │ ├── KubeApiAttribute.cs │ │ │ ├── KubeListItemAttribute.cs │ │ │ ├── KubeObjectAttribute.cs │ │ │ ├── KubeObjectV1.cs │ │ │ ├── KubeResourceListResultV1.cs │ │ │ ├── KubeResourceListV1.cs │ │ │ ├── KubeResourceResultV1.cs │ │ │ ├── KubeResourceV1.cs │ │ │ ├── KubeResultV1.cs │ │ │ ├── MergeStrategyAttribute.cs │ │ │ ├── MicroTimeV1.cs │ │ │ ├── ModelExtensions.cs │ │ │ ├── ModelMetadata.cs │ │ │ ├── ObjectMetaV1.cs │ │ │ ├── PatchStrategies.cs │ │ │ ├── PatchStrategyAttribute.cs │ │ │ ├── QuantityResource.cs │ │ │ ├── ResourceEventType.cs │ │ │ ├── ResourceEventV1.cs │ │ │ ├── RetainKeysStrategyAttribute.cs │ │ │ ├── StatusV1.cs │ │ │ ├── ThirdPartyResourceListV1Beta1.cs │ │ │ ├── ThirdPartyResourceV1Beta1.cs │ │ │ ├── TimeV1.cs │ │ │ ├── Yaml.cs │ │ │ └── generated/ │ │ │ ├── APIGroupListV1.cs │ │ │ ├── APIGroupV1.cs │ │ │ ├── APIResourceListV1.cs │ │ │ ├── APIResourceV1.cs │ │ │ ├── APIServiceConditionV1.cs │ │ │ ├── APIServiceConditionV1Beta1.cs │ │ │ ├── APIServiceListV1.cs │ │ │ ├── APIServiceListV1Beta1.cs │ │ │ ├── APIServiceSpecV1.cs │ │ │ ├── APIServiceSpecV1Beta1.cs │ │ │ ├── APIServiceStatusV1.cs │ │ │ ├── APIServiceStatusV1Beta1.cs │ │ │ ├── APIServiceV1.cs │ │ │ ├── APIServiceV1Beta1.cs │ │ │ ├── APIVersionV1Beta1.cs │ │ │ ├── APIVersionsV1.cs │ │ │ ├── AWSElasticBlockStoreVolumeSourceV1.cs │ │ │ ├── AffinityV1.cs │ │ │ ├── AggregationRuleV1.cs │ │ │ ├── AggregationRuleV1Alpha1.cs │ │ │ ├── AggregationRuleV1Beta1.cs │ │ │ ├── AllocationResultV1Alpha3.cs │ │ │ ├── AllowedFlexVolumeV1Beta1.cs │ │ │ ├── AllowedHostPathV1Beta1.cs │ │ │ ├── AppArmorProfileV1.cs │ │ │ ├── AttachedVolumeV1.cs │ │ │ ├── AuditAnnotationV1.cs │ │ │ ├── AuditAnnotationV1Alpha1.cs │ │ │ ├── AuditAnnotationV1Beta1.cs │ │ │ ├── AzureDiskVolumeSourceV1.cs │ │ │ ├── AzureFilePersistentVolumeSourceV1.cs │ │ │ ├── AzureFileVolumeSourceV1.cs │ │ │ ├── BasicDeviceV1Alpha3.cs │ │ │ ├── BindingV1.cs │ │ │ ├── BoundObjectReferenceV1.cs │ │ │ ├── CELDeviceSelectorV1Alpha3.cs │ │ │ ├── CSIDriverListV1.cs │ │ │ ├── CSIDriverSpecV1.cs │ │ │ ├── CSIDriverV1.cs │ │ │ ├── CSINodeDriverV1.cs │ │ │ ├── CSINodeListV1.cs │ │ │ ├── CSINodeSpecV1.cs │ │ │ ├── CSINodeV1.cs │ │ │ ├── CSIPersistentVolumeSourceV1.cs │ │ │ ├── CSIStorageCapacityListV1.cs │ │ │ ├── CSIStorageCapacityV1.cs │ │ │ ├── CSIVolumeSourceV1.cs │ │ │ ├── CapabilitiesV1.cs │ │ │ ├── CephFSPersistentVolumeSourceV1.cs │ │ │ ├── CephFSVolumeSourceV1.cs │ │ │ ├── CertificateSigningRequestConditionV1.cs │ │ │ ├── CertificateSigningRequestConditionV1Beta1.cs │ │ │ ├── CertificateSigningRequestListV1.cs │ │ │ ├── CertificateSigningRequestListV1Beta1.cs │ │ │ ├── CertificateSigningRequestSpecV1.cs │ │ │ ├── CertificateSigningRequestSpecV1Beta1.cs │ │ │ ├── CertificateSigningRequestStatusV1.cs │ │ │ ├── CertificateSigningRequestStatusV1Beta1.cs │ │ │ ├── CertificateSigningRequestV1.cs │ │ │ ├── CertificateSigningRequestV1Beta1.cs │ │ │ ├── CinderPersistentVolumeSourceV1.cs │ │ │ ├── CinderVolumeSourceV1.cs │ │ │ ├── ClientIPConfigV1.cs │ │ │ ├── ClusterRoleBindingListV1.cs │ │ │ ├── ClusterRoleBindingListV1Alpha1.cs │ │ │ ├── ClusterRoleBindingListV1Beta1.cs │ │ │ ├── ClusterRoleBindingV1.cs │ │ │ ├── ClusterRoleBindingV1Alpha1.cs │ │ │ ├── ClusterRoleBindingV1Beta1.cs │ │ │ ├── ClusterRoleListV1.cs │ │ │ ├── ClusterRoleListV1Alpha1.cs │ │ │ ├── ClusterRoleListV1Beta1.cs │ │ │ ├── ClusterRoleV1.cs │ │ │ ├── ClusterRoleV1Alpha1.cs │ │ │ ├── ClusterRoleV1Beta1.cs │ │ │ ├── ClusterTrustBundleListV1Alpha1.cs │ │ │ ├── ClusterTrustBundleProjectionV1.cs │ │ │ ├── ClusterTrustBundleSpecV1Alpha1.cs │ │ │ ├── ClusterTrustBundleV1Alpha1.cs │ │ │ ├── ComponentConditionV1.cs │ │ │ ├── ComponentStatusListV1.cs │ │ │ ├── ComponentStatusV1.cs │ │ │ ├── ConditionV1.cs │ │ │ ├── ConfigMapEnvSourceV1.cs │ │ │ ├── ConfigMapKeySelectorV1.cs │ │ │ ├── ConfigMapListV1.cs │ │ │ ├── ConfigMapNodeConfigSourceV1.cs │ │ │ ├── ConfigMapProjectionV1.cs │ │ │ ├── ConfigMapV1.cs │ │ │ ├── ConfigMapVolumeSourceV1.cs │ │ │ ├── ContainerImageV1.cs │ │ │ ├── ContainerPortV1.cs │ │ │ ├── ContainerResizePolicyV1.cs │ │ │ ├── ContainerResourceMetricSourceV2.cs │ │ │ ├── ContainerResourceMetricStatusV2.cs │ │ │ ├── ContainerStateRunningV1.cs │ │ │ ├── ContainerStateTerminatedV1.cs │ │ │ ├── ContainerStateV1.cs │ │ │ ├── ContainerStateWaitingV1.cs │ │ │ ├── ContainerStatusV1.cs │ │ │ ├── ContainerUserV1.cs │ │ │ ├── ContainerV1.cs │ │ │ ├── ControllerRevisionListV1.cs │ │ │ ├── ControllerRevisionListV1Beta1.cs │ │ │ ├── ControllerRevisionListV1Beta2.cs │ │ │ ├── ControllerRevisionV1.cs │ │ │ ├── ControllerRevisionV1Beta1.cs │ │ │ ├── ControllerRevisionV1Beta2.cs │ │ │ ├── CronJobListV1.cs │ │ │ ├── CronJobListV1Beta1.cs │ │ │ ├── CronJobListV2Alpha1.cs │ │ │ ├── CronJobSpecV1.cs │ │ │ ├── CronJobSpecV1Beta1.cs │ │ │ ├── CronJobSpecV2Alpha1.cs │ │ │ ├── CronJobStatusV1.cs │ │ │ ├── CronJobStatusV1Beta1.cs │ │ │ ├── CronJobStatusV2Alpha1.cs │ │ │ ├── CronJobV1.cs │ │ │ ├── CronJobV1Beta1.cs │ │ │ ├── CronJobV2Alpha1.cs │ │ │ ├── CrossVersionObjectReferenceV1.cs │ │ │ ├── CrossVersionObjectReferenceV2.cs │ │ │ ├── CrossVersionObjectReferenceV2Beta1.cs │ │ │ ├── CustomResourceColumnDefinitionV1.cs │ │ │ ├── CustomResourceColumnDefinitionV1Beta1.cs │ │ │ ├── CustomResourceConversionV1.cs │ │ │ ├── CustomResourceDefinitionConditionV1.cs │ │ │ ├── CustomResourceDefinitionConditionV1Beta1.cs │ │ │ ├── CustomResourceDefinitionListV1.cs │ │ │ ├── CustomResourceDefinitionListV1Beta1.cs │ │ │ ├── CustomResourceDefinitionNamesV1.cs │ │ │ ├── CustomResourceDefinitionNamesV1Beta1.cs │ │ │ ├── CustomResourceDefinitionSpecV1.cs │ │ │ ├── CustomResourceDefinitionSpecV1Beta1.cs │ │ │ ├── CustomResourceDefinitionStatusV1.cs │ │ │ ├── CustomResourceDefinitionStatusV1Beta1.cs │ │ │ ├── CustomResourceDefinitionV1.cs │ │ │ ├── CustomResourceDefinitionV1Beta1.cs │ │ │ ├── CustomResourceDefinitionVersionV1.cs │ │ │ ├── CustomResourceDefinitionVersionV1Beta1.cs │ │ │ ├── CustomResourceSubresourceScaleV1.cs │ │ │ ├── CustomResourceSubresourceScaleV1Beta1.cs │ │ │ ├── CustomResourceSubresourceStatusV1.cs │ │ │ ├── CustomResourceSubresourceStatusV1Beta1.cs │ │ │ ├── CustomResourceSubresourcesV1.cs │ │ │ ├── CustomResourceSubresourcesV1Beta1.cs │ │ │ ├── CustomResourceValidationV1.cs │ │ │ ├── CustomResourceValidationV1Beta1.cs │ │ │ ├── DaemonEndpointV1.cs │ │ │ ├── DaemonSetConditionV1.cs │ │ │ ├── DaemonSetConditionV1Beta1.cs │ │ │ ├── DaemonSetConditionV1Beta2.cs │ │ │ ├── DaemonSetListV1.cs │ │ │ ├── DaemonSetListV1Beta1.cs │ │ │ ├── DaemonSetListV1Beta2.cs │ │ │ ├── DaemonSetSpecV1.cs │ │ │ ├── DaemonSetSpecV1Beta1.cs │ │ │ ├── DaemonSetSpecV1Beta2.cs │ │ │ ├── DaemonSetStatusV1.cs │ │ │ ├── DaemonSetStatusV1Beta1.cs │ │ │ ├── DaemonSetStatusV1Beta2.cs │ │ │ ├── DaemonSetUpdateStrategyV1.cs │ │ │ ├── DaemonSetUpdateStrategyV1Beta1.cs │ │ │ ├── DaemonSetUpdateStrategyV1Beta2.cs │ │ │ ├── DaemonSetV1.cs │ │ │ ├── DaemonSetV1Beta1.cs │ │ │ ├── DaemonSetV1Beta2.cs │ │ │ ├── DeploymentConditionV1.cs │ │ │ ├── DeploymentConditionV1Beta1.cs │ │ │ ├── DeploymentConditionV1Beta2.cs │ │ │ ├── DeploymentListV1.cs │ │ │ ├── DeploymentListV1Beta1.cs │ │ │ ├── DeploymentListV1Beta2.cs │ │ │ ├── DeploymentRollbackV1Beta1.cs │ │ │ ├── DeploymentSpecV1.cs │ │ │ ├── DeploymentSpecV1Beta1.cs │ │ │ ├── DeploymentSpecV1Beta2.cs │ │ │ ├── DeploymentStatusV1.cs │ │ │ ├── DeploymentStatusV1Beta1.cs │ │ │ ├── DeploymentStatusV1Beta2.cs │ │ │ ├── DeploymentStrategyV1.cs │ │ │ ├── DeploymentStrategyV1Beta1.cs │ │ │ ├── DeploymentStrategyV1Beta2.cs │ │ │ ├── DeploymentV1.cs │ │ │ ├── DeploymentV1Beta1.cs │ │ │ ├── DeploymentV1Beta2.cs │ │ │ ├── DeviceAllocationConfigurationV1Alpha3.cs │ │ │ ├── DeviceAllocationResultV1Alpha3.cs │ │ │ ├── DeviceAttributeV1Alpha3.cs │ │ │ ├── DeviceClaimConfigurationV1Alpha3.cs │ │ │ ├── DeviceClaimV1Alpha3.cs │ │ │ ├── DeviceClassConfigurationV1Alpha3.cs │ │ │ ├── DeviceClassListV1Alpha3.cs │ │ │ ├── DeviceClassSpecV1Alpha3.cs │ │ │ ├── DeviceClassV1Alpha3.cs │ │ │ ├── DeviceConstraintV1Alpha3.cs │ │ │ ├── DeviceRequestAllocationResultV1Alpha3.cs │ │ │ ├── DeviceRequestV1Alpha3.cs │ │ │ ├── DeviceSelectorV1Alpha3.cs │ │ │ ├── DeviceV1Alpha3.cs │ │ │ ├── DownwardAPIProjectionV1.cs │ │ │ ├── DownwardAPIVolumeFileV1.cs │ │ │ ├── DownwardAPIVolumeSourceV1.cs │ │ │ ├── EmptyDirVolumeSourceV1.cs │ │ │ ├── EndpointAddressV1.cs │ │ │ ├── EndpointConditionsV1.cs │ │ │ ├── EndpointHintsV1.cs │ │ │ ├── EndpointPortV1.cs │ │ │ ├── EndpointSliceListV1.cs │ │ │ ├── EndpointSliceV1.cs │ │ │ ├── EndpointSubsetV1.cs │ │ │ ├── EndpointV1.cs │ │ │ ├── EndpointsListV1.cs │ │ │ ├── EndpointsV1.cs │ │ │ ├── EnvFromSourceV1.cs │ │ │ ├── EnvVarSourceV1.cs │ │ │ ├── EnvVarV1.cs │ │ │ ├── EphemeralContainerV1.cs │ │ │ ├── EphemeralVolumeSourceV1.cs │ │ │ ├── EventListV1.cs │ │ │ ├── EventListV1Beta1.cs │ │ │ ├── EventSeriesV1.cs │ │ │ ├── EventSeriesV1Beta1.cs │ │ │ ├── EventSourceV1.cs │ │ │ ├── EventV1.cs │ │ │ ├── EventV1Beta1.cs │ │ │ ├── EvictionV1.cs │ │ │ ├── EvictionV1Beta1.cs │ │ │ ├── ExecActionV1.cs │ │ │ ├── ExemptPriorityLevelConfigurationV1.cs │ │ │ ├── ExemptPriorityLevelConfigurationV1Beta3.cs │ │ │ ├── ExpressionWarningV1.cs │ │ │ ├── ExpressionWarningV1Alpha1.cs │ │ │ ├── ExpressionWarningV1Beta1.cs │ │ │ ├── ExternalDocumentationV1.cs │ │ │ ├── ExternalDocumentationV1Beta1.cs │ │ │ ├── ExternalMetricSourceV2.cs │ │ │ ├── ExternalMetricSourceV2Beta1.cs │ │ │ ├── ExternalMetricStatusV2.cs │ │ │ ├── ExternalMetricStatusV2Beta1.cs │ │ │ ├── FCVolumeSourceV1.cs │ │ │ ├── FSGroupStrategyOptionsV1Beta1.cs │ │ │ ├── FieldSelectorAttributesV1.cs │ │ │ ├── FieldSelectorRequirementV1.cs │ │ │ ├── FieldsV1.cs │ │ │ ├── FlexPersistentVolumeSourceV1.cs │ │ │ ├── FlexVolumeSourceV1.cs │ │ │ ├── FlockerVolumeSourceV1.cs │ │ │ ├── FlowDistinguisherMethodV1.cs │ │ │ ├── FlowDistinguisherMethodV1Beta3.cs │ │ │ ├── FlowSchemaConditionV1.cs │ │ │ ├── FlowSchemaConditionV1Beta3.cs │ │ │ ├── FlowSchemaListV1.cs │ │ │ ├── FlowSchemaListV1Beta3.cs │ │ │ ├── FlowSchemaSpecV1.cs │ │ │ ├── FlowSchemaSpecV1Beta3.cs │ │ │ ├── FlowSchemaStatusV1.cs │ │ │ ├── FlowSchemaStatusV1Beta3.cs │ │ │ ├── FlowSchemaV1.cs │ │ │ ├── FlowSchemaV1Beta3.cs │ │ │ ├── ForZoneV1.cs │ │ │ ├── GCEPersistentDiskVolumeSourceV1.cs │ │ │ ├── GRPCActionV1.cs │ │ │ ├── GitRepoVolumeSourceV1.cs │ │ │ ├── GlusterfsPersistentVolumeSourceV1.cs │ │ │ ├── GlusterfsVolumeSourceV1.cs │ │ │ ├── GroupSubjectV1.cs │ │ │ ├── GroupSubjectV1Beta3.cs │ │ │ ├── GroupVersionForDiscoveryV1.cs │ │ │ ├── GroupVersionResourceV1Alpha1.cs │ │ │ ├── HPAScalingPolicyV2.cs │ │ │ ├── HPAScalingRulesV2.cs │ │ │ ├── HTTPGetActionV1.cs │ │ │ ├── HTTPHeaderV1.cs │ │ │ ├── HTTPIngressPathV1.cs │ │ │ ├── HTTPIngressPathV1Beta1.cs │ │ │ ├── HTTPIngressRuleValueV1.cs │ │ │ ├── HTTPIngressRuleValueV1Beta1.cs │ │ │ ├── HandlerV1.cs │ │ │ ├── HorizontalPodAutoscalerBehaviorV2.cs │ │ │ ├── HorizontalPodAutoscalerConditionV2.cs │ │ │ ├── HorizontalPodAutoscalerConditionV2Beta1.cs │ │ │ ├── HorizontalPodAutoscalerListV1.cs │ │ │ ├── HorizontalPodAutoscalerListV2.cs │ │ │ ├── HorizontalPodAutoscalerListV2Beta1.cs │ │ │ ├── HorizontalPodAutoscalerSpecV1.cs │ │ │ ├── HorizontalPodAutoscalerSpecV2.cs │ │ │ ├── HorizontalPodAutoscalerSpecV2Beta1.cs │ │ │ ├── HorizontalPodAutoscalerStatusV1.cs │ │ │ ├── HorizontalPodAutoscalerStatusV2.cs │ │ │ ├── HorizontalPodAutoscalerStatusV2Beta1.cs │ │ │ ├── HorizontalPodAutoscalerV1.cs │ │ │ ├── HorizontalPodAutoscalerV2.cs │ │ │ ├── HorizontalPodAutoscalerV2Beta1.cs │ │ │ ├── HostAliasV1.cs │ │ │ ├── HostIPV1.cs │ │ │ ├── HostPathVolumeSourceV1.cs │ │ │ ├── HostPortRangeV1Beta1.cs │ │ │ ├── IDRangeV1Beta1.cs │ │ │ ├── IPAddressListV1Beta1.cs │ │ │ ├── IPAddressSpecV1Beta1.cs │ │ │ ├── IPAddressV1Beta1.cs │ │ │ ├── IPBlockV1.cs │ │ │ ├── IPBlockV1Beta1.cs │ │ │ ├── ISCSIPersistentVolumeSourceV1.cs │ │ │ ├── ISCSIVolumeSourceV1.cs │ │ │ ├── ImageVolumeSourceV1.cs │ │ │ ├── InfoVersion.cs │ │ │ ├── IngressBackendV1.cs │ │ │ ├── IngressBackendV1Beta1.cs │ │ │ ├── IngressClassListV1.cs │ │ │ ├── IngressClassParametersReferenceV1.cs │ │ │ ├── IngressClassSpecV1.cs │ │ │ ├── IngressClassV1.cs │ │ │ ├── IngressListV1.cs │ │ │ ├── IngressListV1Beta1.cs │ │ │ ├── IngressLoadBalancerIngressV1.cs │ │ │ ├── IngressLoadBalancerStatusV1.cs │ │ │ ├── IngressPortStatusV1.cs │ │ │ ├── IngressRuleV1.cs │ │ │ ├── IngressRuleV1Beta1.cs │ │ │ ├── IngressServiceBackendV1.cs │ │ │ ├── IngressSpecV1.cs │ │ │ ├── IngressSpecV1Beta1.cs │ │ │ ├── IngressStatusV1.cs │ │ │ ├── IngressStatusV1Beta1.cs │ │ │ ├── IngressTLSV1.cs │ │ │ ├── IngressTLSV1Beta1.cs │ │ │ ├── IngressV1.cs │ │ │ ├── IngressV1Beta1.cs │ │ │ ├── InitializerConfigurationListV1Alpha1.cs │ │ │ ├── InitializerConfigurationV1Alpha1.cs │ │ │ ├── InitializerV1.cs │ │ │ ├── InitializerV1Alpha1.cs │ │ │ ├── InitializersV1.cs │ │ │ ├── JSONSchemaPropsOrArrayV1.cs │ │ │ ├── JSONSchemaPropsOrBoolV1.cs │ │ │ ├── JSONSchemaPropsOrBoolV1Beta1.cs │ │ │ ├── JSONSchemaPropsOrStringArrayV1.cs │ │ │ ├── JSONSchemaPropsOrStringArrayV1Beta1.cs │ │ │ ├── JSONSchemaPropsV1.cs │ │ │ ├── JSONSchemaPropsV1Beta1.cs │ │ │ ├── JSONV1Beta1.cs │ │ │ ├── JobConditionV1.cs │ │ │ ├── JobListV1.cs │ │ │ ├── JobSpecV1.cs │ │ │ ├── JobStatusV1.cs │ │ │ ├── JobTemplateSpecV1.cs │ │ │ ├── JobTemplateSpecV1Beta1.cs │ │ │ ├── JobTemplateSpecV2Alpha1.cs │ │ │ ├── JobV1.cs │ │ │ ├── KeyToPathV1.cs │ │ │ ├── LabelSelectorAttributesV1.cs │ │ │ ├── LabelSelectorRequirementV1.cs │ │ │ ├── LabelSelectorV1.cs │ │ │ ├── LeaseCandidateListV1Alpha1.cs │ │ │ ├── LeaseCandidateSpecV1Alpha1.cs │ │ │ ├── LeaseCandidateV1Alpha1.cs │ │ │ ├── LeaseListV1.cs │ │ │ ├── LeaseSpecV1.cs │ │ │ ├── LeaseV1.cs │ │ │ ├── LifecycleHandlerV1.cs │ │ │ ├── LifecycleV1.cs │ │ │ ├── LimitRangeItemV1.cs │ │ │ ├── LimitRangeListV1.cs │ │ │ ├── LimitRangeSpecV1.cs │ │ │ ├── LimitRangeV1.cs │ │ │ ├── LimitResponseV1.cs │ │ │ ├── LimitResponseV1Beta3.cs │ │ │ ├── LimitedPriorityLevelConfigurationV1.cs │ │ │ ├── LimitedPriorityLevelConfigurationV1Beta3.cs │ │ │ ├── LinuxContainerUserV1.cs │ │ │ ├── ListMetaV1.cs │ │ │ ├── LoadBalancerIngressV1.cs │ │ │ ├── LoadBalancerStatusV1.cs │ │ │ ├── LocalObjectReferenceV1.cs │ │ │ ├── LocalSubjectAccessReviewV1.cs │ │ │ ├── LocalSubjectAccessReviewV1Beta1.cs │ │ │ ├── LocalVolumeSourceV1.cs │ │ │ ├── ManagedFieldsEntryV1.cs │ │ │ ├── MatchConditionV1.cs │ │ │ ├── MatchConditionV1Alpha1.cs │ │ │ ├── MatchConditionV1Beta1.cs │ │ │ ├── MatchResourcesV1.cs │ │ │ ├── MatchResourcesV1Alpha1.cs │ │ │ ├── MatchResourcesV1Beta1.cs │ │ │ ├── MetricIdentifierV2.cs │ │ │ ├── MetricSpecV2.cs │ │ │ ├── MetricSpecV2Beta1.cs │ │ │ ├── MetricStatusV2.cs │ │ │ ├── MetricStatusV2Beta1.cs │ │ │ ├── MetricTargetV2.cs │ │ │ ├── MetricValueStatusV2.cs │ │ │ ├── MigrationConditionV1Alpha1.cs │ │ │ ├── ModifyVolumeStatusV1.cs │ │ │ ├── MutatingWebhookConfigurationListV1.cs │ │ │ ├── MutatingWebhookConfigurationListV1Beta1.cs │ │ │ ├── MutatingWebhookConfigurationV1.cs │ │ │ ├── MutatingWebhookConfigurationV1Beta1.cs │ │ │ ├── MutatingWebhookV1.cs │ │ │ ├── NFSVolumeSourceV1.cs │ │ │ ├── NamedRuleWithOperationsV1.cs │ │ │ ├── NamedRuleWithOperationsV1Alpha1.cs │ │ │ ├── NamedRuleWithOperationsV1Beta1.cs │ │ │ ├── NamespaceConditionV1.cs │ │ │ ├── NamespaceListV1.cs │ │ │ ├── NamespaceSpecV1.cs │ │ │ ├── NamespaceStatusV1.cs │ │ │ ├── NamespaceV1.cs │ │ │ ├── NetworkPolicyEgressRuleV1.cs │ │ │ ├── NetworkPolicyEgressRuleV1Beta1.cs │ │ │ ├── NetworkPolicyIngressRuleV1.cs │ │ │ ├── NetworkPolicyIngressRuleV1Beta1.cs │ │ │ ├── NetworkPolicyListV1.cs │ │ │ ├── NetworkPolicyPeerV1.cs │ │ │ ├── NetworkPolicyPeerV1Beta1.cs │ │ │ ├── NetworkPolicyPortV1.cs │ │ │ ├── NetworkPolicyPortV1Beta1.cs │ │ │ ├── NetworkPolicySpecV1.cs │ │ │ ├── NetworkPolicySpecV1Beta1.cs │ │ │ ├── NetworkPolicyV1.cs │ │ │ ├── NodeAddressV1.cs │ │ │ ├── NodeAffinityV1.cs │ │ │ ├── NodeConditionV1.cs │ │ │ ├── NodeConfigSourceV1.cs │ │ │ ├── NodeConfigStatusV1.cs │ │ │ ├── NodeDaemonEndpointsV1.cs │ │ │ ├── NodeFeaturesV1.cs │ │ │ ├── NodeListV1.cs │ │ │ ├── NodeRuntimeHandlerFeaturesV1.cs │ │ │ ├── NodeRuntimeHandlerV1.cs │ │ │ ├── NodeSelectorRequirementV1.cs │ │ │ ├── NodeSelectorTermV1.cs │ │ │ ├── NodeSelectorV1.cs │ │ │ ├── NodeSpecV1.cs │ │ │ ├── NodeStatusV1.cs │ │ │ ├── NodeSystemInfoV1.cs │ │ │ ├── NodeV1.cs │ │ │ ├── NonResourceAttributesV1.cs │ │ │ ├── NonResourceAttributesV1Beta1.cs │ │ │ ├── NonResourcePolicyRuleV1.cs │ │ │ ├── NonResourcePolicyRuleV1Beta3.cs │ │ │ ├── NonResourceRuleV1.cs │ │ │ ├── NonResourceRuleV1Beta1.cs │ │ │ ├── ObjectFieldSelectorV1.cs │ │ │ ├── ObjectMetaV1.cs │ │ │ ├── ObjectMetricSourceV2.cs │ │ │ ├── ObjectMetricSourceV2Beta1.cs │ │ │ ├── ObjectMetricStatusV2.cs │ │ │ ├── ObjectMetricStatusV2Beta1.cs │ │ │ ├── ObjectReferenceV1.cs │ │ │ ├── OpaqueDeviceConfigurationV1Alpha3.cs │ │ │ ├── OverheadV1.cs │ │ │ ├── OwnerReferenceV1.cs │ │ │ ├── ParamKindV1.cs │ │ │ ├── ParamKindV1Alpha1.cs │ │ │ ├── ParamKindV1Beta1.cs │ │ │ ├── ParamRefV1.cs │ │ │ ├── ParamRefV1Alpha1.cs │ │ │ ├── ParamRefV1Beta1.cs │ │ │ ├── ParentReferenceV1Beta1.cs │ │ │ ├── PatchV1.cs │ │ │ ├── PersistentVolumeClaimConditionV1.cs │ │ │ ├── PersistentVolumeClaimListV1.cs │ │ │ ├── PersistentVolumeClaimSpecV1.cs │ │ │ ├── PersistentVolumeClaimStatusV1.cs │ │ │ ├── PersistentVolumeClaimTemplateV1.cs │ │ │ ├── PersistentVolumeClaimV1.cs │ │ │ ├── PersistentVolumeClaimVolumeSourceV1.cs │ │ │ ├── PersistentVolumeListV1.cs │ │ │ ├── PersistentVolumeSpecV1.cs │ │ │ ├── PersistentVolumeStatusV1.cs │ │ │ ├── PersistentVolumeV1.cs │ │ │ ├── PhotonPersistentDiskVolumeSourceV1.cs │ │ │ ├── PodAffinityTermV1.cs │ │ │ ├── PodAffinityV1.cs │ │ │ ├── PodAntiAffinityV1.cs │ │ │ ├── PodConditionV1.cs │ │ │ ├── PodDNSConfigOptionV1.cs │ │ │ ├── PodDNSConfigV1.cs │ │ │ ├── PodDisruptionBudgetListV1.cs │ │ │ ├── PodDisruptionBudgetListV1Beta1.cs │ │ │ ├── PodDisruptionBudgetSpecV1.cs │ │ │ ├── PodDisruptionBudgetSpecV1Beta1.cs │ │ │ ├── PodDisruptionBudgetStatusV1.cs │ │ │ ├── PodDisruptionBudgetStatusV1Beta1.cs │ │ │ ├── PodDisruptionBudgetV1.cs │ │ │ ├── PodDisruptionBudgetV1Beta1.cs │ │ │ ├── PodFailurePolicyOnExitCodesRequirementV1.cs │ │ │ ├── PodFailurePolicyOnPodConditionsPatternV1.cs │ │ │ ├── PodFailurePolicyRuleV1.cs │ │ │ ├── PodFailurePolicyV1.cs │ │ │ ├── PodIPV1.cs │ │ │ ├── PodListV1.cs │ │ │ ├── PodOSV1.cs │ │ │ ├── PodPresetListV1Alpha1.cs │ │ │ ├── PodPresetSpecV1Alpha1.cs │ │ │ ├── PodPresetV1Alpha1.cs │ │ │ ├── PodReadinessGateV1.cs │ │ │ ├── PodResourceClaimStatusV1.cs │ │ │ ├── PodResourceClaimV1.cs │ │ │ ├── PodSchedulingContextListV1Alpha3.cs │ │ │ ├── PodSchedulingContextSpecV1Alpha3.cs │ │ │ ├── PodSchedulingContextStatusV1Alpha3.cs │ │ │ ├── PodSchedulingContextV1Alpha3.cs │ │ │ ├── PodSchedulingGateV1.cs │ │ │ ├── PodSecurityContextV1.cs │ │ │ ├── PodSecurityPolicyListV1Beta1.cs │ │ │ ├── PodSecurityPolicySpecV1Beta1.cs │ │ │ ├── PodSecurityPolicyV1Beta1.cs │ │ │ ├── PodSpecV1.cs │ │ │ ├── PodStatusV1.cs │ │ │ ├── PodTemplateListV1.cs │ │ │ ├── PodTemplateSpecV1.cs │ │ │ ├── PodTemplateV1.cs │ │ │ ├── PodV1.cs │ │ │ ├── PodsMetricSourceV2.cs │ │ │ ├── PodsMetricSourceV2Beta1.cs │ │ │ ├── PodsMetricStatusV2.cs │ │ │ ├── PodsMetricStatusV2Beta1.cs │ │ │ ├── PolicyRuleV1.cs │ │ │ ├── PolicyRuleV1Alpha1.cs │ │ │ ├── PolicyRuleV1Beta1.cs │ │ │ ├── PolicyRulesWithSubjectsV1.cs │ │ │ ├── PolicyRulesWithSubjectsV1Beta3.cs │ │ │ ├── PortStatusV1.cs │ │ │ ├── PortworxVolumeSourceV1.cs │ │ │ ├── PreconditionsV1.cs │ │ │ ├── PreferredSchedulingTermV1.cs │ │ │ ├── PriorityClassListV1.cs │ │ │ ├── PriorityClassListV1Alpha1.cs │ │ │ ├── PriorityClassListV1Beta1.cs │ │ │ ├── PriorityClassV1.cs │ │ │ ├── PriorityClassV1Alpha1.cs │ │ │ ├── PriorityClassV1Beta1.cs │ │ │ ├── PriorityLevelConfigurationConditionV1.cs │ │ │ ├── PriorityLevelConfigurationConditionV1Beta3.cs │ │ │ ├── PriorityLevelConfigurationListV1.cs │ │ │ ├── PriorityLevelConfigurationListV1Beta3.cs │ │ │ ├── PriorityLevelConfigurationReferenceV1.cs │ │ │ ├── PriorityLevelConfigurationReferenceV1Beta3.cs │ │ │ ├── PriorityLevelConfigurationSpecV1.cs │ │ │ ├── PriorityLevelConfigurationSpecV1Beta3.cs │ │ │ ├── PriorityLevelConfigurationStatusV1.cs │ │ │ ├── PriorityLevelConfigurationStatusV1Beta3.cs │ │ │ ├── PriorityLevelConfigurationV1.cs │ │ │ ├── PriorityLevelConfigurationV1Beta3.cs │ │ │ ├── ProbeV1.cs │ │ │ ├── ProjectedVolumeSourceV1.cs │ │ │ ├── QueuingConfigurationV1.cs │ │ │ ├── QueuingConfigurationV1Beta3.cs │ │ │ ├── QuobyteVolumeSourceV1.cs │ │ │ ├── RBDPersistentVolumeSourceV1.cs │ │ │ ├── RBDVolumeSourceV1.cs │ │ │ ├── RawExtensionRuntime.cs │ │ │ ├── ReplicaSetConditionV1.cs │ │ │ ├── ReplicaSetConditionV1Beta1.cs │ │ │ ├── ReplicaSetConditionV1Beta2.cs │ │ │ ├── ReplicaSetListV1.cs │ │ │ ├── ReplicaSetListV1Beta2.cs │ │ │ ├── ReplicaSetSpecV1.cs │ │ │ ├── ReplicaSetSpecV1Beta1.cs │ │ │ ├── ReplicaSetSpecV1Beta2.cs │ │ │ ├── ReplicaSetStatusV1.cs │ │ │ ├── ReplicaSetStatusV1Beta1.cs │ │ │ ├── ReplicaSetStatusV1Beta2.cs │ │ │ ├── ReplicaSetV1.cs │ │ │ ├── ReplicaSetV1Beta2.cs │ │ │ ├── ReplicationControllerConditionV1.cs │ │ │ ├── ReplicationControllerListV1.cs │ │ │ ├── ReplicationControllerSpecV1.cs │ │ │ ├── ReplicationControllerStatusV1.cs │ │ │ ├── ReplicationControllerV1.cs │ │ │ ├── ResourceAttributesV1.cs │ │ │ ├── ResourceAttributesV1Beta1.cs │ │ │ ├── ResourceClaimConsumerReferenceV1Alpha3.cs │ │ │ ├── ResourceClaimListV1Alpha3.cs │ │ │ ├── ResourceClaimSchedulingStatusV1Alpha3.cs │ │ │ ├── ResourceClaimSpecV1Alpha3.cs │ │ │ ├── ResourceClaimStatusV1Alpha3.cs │ │ │ ├── ResourceClaimTemplateListV1Alpha3.cs │ │ │ ├── ResourceClaimTemplateSpecV1Alpha3.cs │ │ │ ├── ResourceClaimTemplateV1Alpha3.cs │ │ │ ├── ResourceClaimV1.cs │ │ │ ├── ResourceClaimV1Alpha3.cs │ │ │ ├── ResourceFieldSelectorV1.cs │ │ │ ├── ResourceHealthV1.cs │ │ │ ├── ResourceMetricSourceV2.cs │ │ │ ├── ResourceMetricSourceV2Beta1.cs │ │ │ ├── ResourceMetricStatusV2.cs │ │ │ ├── ResourceMetricStatusV2Beta1.cs │ │ │ ├── ResourcePolicyRuleV1.cs │ │ │ ├── ResourcePolicyRuleV1Beta3.cs │ │ │ ├── ResourcePoolV1Alpha3.cs │ │ │ ├── ResourceQuotaListV1.cs │ │ │ ├── ResourceQuotaSpecV1.cs │ │ │ ├── ResourceQuotaStatusV1.cs │ │ │ ├── ResourceQuotaV1.cs │ │ │ ├── ResourceRequirementsV1.cs │ │ │ ├── ResourceRuleV1.cs │ │ │ ├── ResourceRuleV1Beta1.cs │ │ │ ├── ResourceSliceListV1Alpha3.cs │ │ │ ├── ResourceSliceSpecV1Alpha3.cs │ │ │ ├── ResourceSliceV1Alpha3.cs │ │ │ ├── ResourceStatusV1.cs │ │ │ ├── RoleBindingListV1.cs │ │ │ ├── RoleBindingListV1Alpha1.cs │ │ │ ├── RoleBindingListV1Beta1.cs │ │ │ ├── RoleBindingV1.cs │ │ │ ├── RoleBindingV1Alpha1.cs │ │ │ ├── RoleBindingV1Beta1.cs │ │ │ ├── RoleListV1.cs │ │ │ ├── RoleListV1Alpha1.cs │ │ │ ├── RoleListV1Beta1.cs │ │ │ ├── RoleRefV1.cs │ │ │ ├── RoleRefV1Alpha1.cs │ │ │ ├── RoleRefV1Beta1.cs │ │ │ ├── RoleV1.cs │ │ │ ├── RoleV1Alpha1.cs │ │ │ ├── RoleV1Beta1.cs │ │ │ ├── RollbackConfigV1Beta1.cs │ │ │ ├── RollingUpdateDaemonSetV1.cs │ │ │ ├── RollingUpdateDaemonSetV1Beta1.cs │ │ │ ├── RollingUpdateDaemonSetV1Beta2.cs │ │ │ ├── RollingUpdateDeploymentV1.cs │ │ │ ├── RollingUpdateDeploymentV1Beta1.cs │ │ │ ├── RollingUpdateDeploymentV1Beta2.cs │ │ │ ├── RollingUpdateStatefulSetStrategyV1.cs │ │ │ ├── RollingUpdateStatefulSetStrategyV1Beta1.cs │ │ │ ├── RollingUpdateStatefulSetStrategyV1Beta2.cs │ │ │ ├── RuleV1Alpha1.cs │ │ │ ├── RuleWithOperationsV1.cs │ │ │ ├── RuleWithOperationsV1Beta1.cs │ │ │ ├── RunAsUserStrategyOptionsV1Beta1.cs │ │ │ ├── RuntimeClassListV1.cs │ │ │ ├── RuntimeClassV1.cs │ │ │ ├── SELinuxOptionsV1.cs │ │ │ ├── SELinuxStrategyOptionsV1Beta1.cs │ │ │ ├── ScaleIOPersistentVolumeSourceV1.cs │ │ │ ├── ScaleIOVolumeSourceV1.cs │ │ │ ├── ScaleSpecV1.cs │ │ │ ├── ScaleSpecV1Beta1.cs │ │ │ ├── ScaleSpecV1Beta2.cs │ │ │ ├── ScaleStatusV1.cs │ │ │ ├── ScaleStatusV1Beta1.cs │ │ │ ├── ScaleStatusV1Beta2.cs │ │ │ ├── ScaleV1.cs │ │ │ ├── ScaleV1Beta1.cs │ │ │ ├── ScaleV1Beta2.cs │ │ │ ├── SchedulingV1.cs │ │ │ ├── ScopeSelectorV1.cs │ │ │ ├── ScopedResourceSelectorRequirementV1.cs │ │ │ ├── SeccompProfileV1.cs │ │ │ ├── SecretEnvSourceV1.cs │ │ │ ├── SecretKeySelectorV1.cs │ │ │ ├── SecretListV1.cs │ │ │ ├── SecretProjectionV1.cs │ │ │ ├── SecretReferenceV1.cs │ │ │ ├── SecretV1.cs │ │ │ ├── SecretVolumeSourceV1.cs │ │ │ ├── SecurityContextV1.cs │ │ │ ├── SelectableFieldV1.cs │ │ │ ├── SelfSubjectAccessReviewSpecV1.cs │ │ │ ├── SelfSubjectAccessReviewSpecV1Beta1.cs │ │ │ ├── SelfSubjectAccessReviewV1.cs │ │ │ ├── SelfSubjectAccessReviewV1Beta1.cs │ │ │ ├── SelfSubjectReviewStatusV1.cs │ │ │ ├── SelfSubjectReviewStatusV1Alpha1.cs │ │ │ ├── SelfSubjectReviewStatusV1Beta1.cs │ │ │ ├── SelfSubjectReviewV1.cs │ │ │ ├── SelfSubjectReviewV1Alpha1.cs │ │ │ ├── SelfSubjectReviewV1Beta1.cs │ │ │ ├── SelfSubjectRulesReviewSpecV1.cs │ │ │ ├── SelfSubjectRulesReviewSpecV1Beta1.cs │ │ │ ├── SelfSubjectRulesReviewV1.cs │ │ │ ├── SelfSubjectRulesReviewV1Beta1.cs │ │ │ ├── ServerAddressByClientCIDRV1.cs │ │ │ ├── ServerStorageVersionV1Alpha1.cs │ │ │ ├── ServiceAccountListV1.cs │ │ │ ├── ServiceAccountSubjectV1.cs │ │ │ ├── ServiceAccountSubjectV1Beta3.cs │ │ │ ├── ServiceAccountTokenProjectionV1.cs │ │ │ ├── ServiceAccountV1.cs │ │ │ ├── ServiceBackendPortV1.cs │ │ │ ├── ServiceCIDRListV1Beta1.cs │ │ │ ├── ServiceCIDRSpecV1Beta1.cs │ │ │ ├── ServiceCIDRStatusV1Beta1.cs │ │ │ ├── ServiceCIDRV1Beta1.cs │ │ │ ├── ServiceListV1.cs │ │ │ ├── ServicePortV1.cs │ │ │ ├── ServiceReferenceV1.cs │ │ │ ├── ServiceReferenceV1Beta1.cs │ │ │ ├── ServiceSpecV1.cs │ │ │ ├── ServiceStatusV1.cs │ │ │ ├── ServiceV1.cs │ │ │ ├── SessionAffinityConfigV1.cs │ │ │ ├── SleepActionV1.cs │ │ │ ├── StatefulSetConditionV1.cs │ │ │ ├── StatefulSetConditionV1Beta1.cs │ │ │ ├── StatefulSetConditionV1Beta2.cs │ │ │ ├── StatefulSetListV1.cs │ │ │ ├── StatefulSetListV1Beta1.cs │ │ │ ├── StatefulSetListV1Beta2.cs │ │ │ ├── StatefulSetOrdinalsV1.cs │ │ │ ├── StatefulSetPersistentVolumeClaimRetentionPolicyV1.cs │ │ │ ├── StatefulSetSpecV1.cs │ │ │ ├── StatefulSetSpecV1Beta1.cs │ │ │ ├── StatefulSetSpecV1Beta2.cs │ │ │ ├── StatefulSetStatusV1.cs │ │ │ ├── StatefulSetStatusV1Beta1.cs │ │ │ ├── StatefulSetStatusV1Beta2.cs │ │ │ ├── StatefulSetUpdateStrategyV1.cs │ │ │ ├── StatefulSetUpdateStrategyV1Beta1.cs │ │ │ ├── StatefulSetUpdateStrategyV1Beta2.cs │ │ │ ├── StatefulSetV1.cs │ │ │ ├── StatefulSetV1Beta1.cs │ │ │ ├── StatefulSetV1Beta2.cs │ │ │ ├── StatusCauseV1.cs │ │ │ ├── StatusDetailsV1.cs │ │ │ ├── StatusV1.cs │ │ │ ├── StorageClassListV1.cs │ │ │ ├── StorageClassListV1Beta1.cs │ │ │ ├── StorageClassV1.cs │ │ │ ├── StorageClassV1Beta1.cs │ │ │ ├── StorageOSPersistentVolumeSourceV1.cs │ │ │ ├── StorageOSVolumeSourceV1.cs │ │ │ ├── StorageVersionConditionV1Alpha1.cs │ │ │ ├── StorageVersionListV1Alpha1.cs │ │ │ ├── StorageVersionMigrationListV1Alpha1.cs │ │ │ ├── StorageVersionMigrationSpecV1Alpha1.cs │ │ │ ├── StorageVersionMigrationStatusV1Alpha1.cs │ │ │ ├── StorageVersionMigrationV1Alpha1.cs │ │ │ ├── StorageVersionSpecV1Alpha1.cs │ │ │ ├── StorageVersionStatusV1Alpha1.cs │ │ │ ├── StorageVersionV1Alpha1.cs │ │ │ ├── SubjectAccessReviewSpecV1.cs │ │ │ ├── SubjectAccessReviewSpecV1Beta1.cs │ │ │ ├── SubjectAccessReviewStatusV1.cs │ │ │ ├── SubjectAccessReviewStatusV1Beta1.cs │ │ │ ├── SubjectAccessReviewV1.cs │ │ │ ├── SubjectAccessReviewV1Beta1.cs │ │ │ ├── SubjectRulesReviewStatusV1.cs │ │ │ ├── SubjectRulesReviewStatusV1Beta1.cs │ │ │ ├── SubjectV1.cs │ │ │ ├── SubjectV1Alpha1.cs │ │ │ ├── SubjectV1Beta1.cs │ │ │ ├── SubjectV1Beta3.cs │ │ │ ├── SuccessPolicyRuleV1.cs │ │ │ ├── SuccessPolicyV1.cs │ │ │ ├── SupplementalGroupsStrategyOptionsV1Beta1.cs │ │ │ ├── SysctlV1.cs │ │ │ ├── TCPSocketActionV1.cs │ │ │ ├── TaintV1.cs │ │ │ ├── TokenRequestSpecV1.cs │ │ │ ├── TokenRequestStatusV1.cs │ │ │ ├── TokenRequestV1.cs │ │ │ ├── TokenReviewSpecV1.cs │ │ │ ├── TokenReviewSpecV1Beta1.cs │ │ │ ├── TokenReviewStatusV1.cs │ │ │ ├── TokenReviewStatusV1Beta1.cs │ │ │ ├── TokenReviewV1.cs │ │ │ ├── TokenReviewV1Beta1.cs │ │ │ ├── TolerationV1.cs │ │ │ ├── TopologySelectorLabelRequirementV1.cs │ │ │ ├── TopologySelectorTermV1.cs │ │ │ ├── TopologySpreadConstraintV1.cs │ │ │ ├── TypeCheckingV1.cs │ │ │ ├── TypeCheckingV1Alpha1.cs │ │ │ ├── TypeCheckingV1Beta1.cs │ │ │ ├── TypedLocalObjectReferenceV1.cs │ │ │ ├── TypedObjectReferenceV1.cs │ │ │ ├── UncountedTerminatedPodsV1.cs │ │ │ ├── UserInfoV1.cs │ │ │ ├── UserInfoV1Beta1.cs │ │ │ ├── UserSubjectV1.cs │ │ │ ├── UserSubjectV1Beta3.cs │ │ │ ├── ValidatingAdmissionPolicyBindingListV1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingListV1Alpha1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingListV1Beta1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingSpecV1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingSpecV1Alpha1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingSpecV1Beta1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingV1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingV1Alpha1.cs │ │ │ ├── ValidatingAdmissionPolicyBindingV1Beta1.cs │ │ │ ├── ValidatingAdmissionPolicyListV1.cs │ │ │ ├── ValidatingAdmissionPolicyListV1Alpha1.cs │ │ │ ├── ValidatingAdmissionPolicyListV1Beta1.cs │ │ │ ├── ValidatingAdmissionPolicySpecV1.cs │ │ │ ├── ValidatingAdmissionPolicySpecV1Alpha1.cs │ │ │ ├── ValidatingAdmissionPolicySpecV1Beta1.cs │ │ │ ├── ValidatingAdmissionPolicyStatusV1.cs │ │ │ ├── ValidatingAdmissionPolicyStatusV1Alpha1.cs │ │ │ ├── ValidatingAdmissionPolicyStatusV1Beta1.cs │ │ │ ├── ValidatingAdmissionPolicyV1.cs │ │ │ ├── ValidatingAdmissionPolicyV1Alpha1.cs │ │ │ ├── ValidatingAdmissionPolicyV1Beta1.cs │ │ │ ├── ValidatingWebhookConfigurationListV1.cs │ │ │ ├── ValidatingWebhookConfigurationListV1Beta1.cs │ │ │ ├── ValidatingWebhookConfigurationV1.cs │ │ │ ├── ValidatingWebhookConfigurationV1Beta1.cs │ │ │ ├── ValidatingWebhookV1.cs │ │ │ ├── ValidationRuleV1.cs │ │ │ ├── ValidationV1.cs │ │ │ ├── ValidationV1Alpha1.cs │ │ │ ├── ValidationV1Beta1.cs │ │ │ ├── VariableV1.cs │ │ │ ├── VariableV1Alpha1.cs │ │ │ ├── VariableV1Beta1.cs │ │ │ ├── VolumeAttachmentListV1.cs │ │ │ ├── VolumeAttachmentListV1Alpha1.cs │ │ │ ├── VolumeAttachmentListV1Beta1.cs │ │ │ ├── VolumeAttachmentSourceV1.cs │ │ │ ├── VolumeAttachmentSourceV1Alpha1.cs │ │ │ ├── VolumeAttachmentSourceV1Beta1.cs │ │ │ ├── VolumeAttachmentSpecV1.cs │ │ │ ├── VolumeAttachmentSpecV1Alpha1.cs │ │ │ ├── VolumeAttachmentSpecV1Beta1.cs │ │ │ ├── VolumeAttachmentStatusV1.cs │ │ │ ├── VolumeAttachmentStatusV1Alpha1.cs │ │ │ ├── VolumeAttachmentStatusV1Beta1.cs │ │ │ ├── VolumeAttachmentV1.cs │ │ │ ├── VolumeAttachmentV1Alpha1.cs │ │ │ ├── VolumeAttachmentV1Beta1.cs │ │ │ ├── VolumeAttributesClassListV1Alpha1.cs │ │ │ ├── VolumeAttributesClassListV1Beta1.cs │ │ │ ├── VolumeAttributesClassV1Alpha1.cs │ │ │ ├── VolumeAttributesClassV1Beta1.cs │ │ │ ├── VolumeDeviceV1.cs │ │ │ ├── VolumeErrorV1.cs │ │ │ ├── VolumeErrorV1Alpha1.cs │ │ │ ├── VolumeErrorV1Beta1.cs │ │ │ ├── VolumeMountStatusV1.cs │ │ │ ├── VolumeMountV1.cs │ │ │ ├── VolumeNodeAffinityV1.cs │ │ │ ├── VolumeNodeResourcesV1.cs │ │ │ ├── VolumeProjectionV1.cs │ │ │ ├── VolumeResourceRequirementsV1.cs │ │ │ ├── VolumeV1.cs │ │ │ ├── VsphereVirtualDiskVolumeSourceV1.cs │ │ │ ├── WatchEventV1.cs │ │ │ ├── WebhookClientConfigV1.cs │ │ │ ├── WebhookClientConfigV1Beta1.cs │ │ │ ├── WebhookConversionV1.cs │ │ │ ├── WebhookV1Beta1.cs │ │ │ ├── WeightedPodAffinityTermV1.cs │ │ │ └── WindowsSecurityContextOptionsV1.cs │ │ ├── ResourceClientExtensions.cs │ │ ├── ResourceClients/ │ │ │ ├── APIGroupClientV1.cs │ │ │ ├── APIResourceClientV1.cs │ │ │ ├── ConfigMapClientV1.cs │ │ │ ├── DaemonSetClientV1.cs │ │ │ ├── DeploymentClientV1.cs │ │ │ ├── DeploymentClientV1Beta1.cs │ │ │ ├── DynamicResourceClient.cs │ │ │ ├── EventClientV1.cs │ │ │ ├── HttpExtensions.cs │ │ │ ├── IngressClientV1Beta1.cs │ │ │ ├── JobClientV1.cs │ │ │ ├── KubeResourceClient.cs │ │ │ ├── NamespaceClientV1.cs │ │ │ ├── NetworkPolicyClientV1.cs │ │ │ ├── NodeClientV1.cs │ │ │ ├── PersistentVolumeClaimClientV1.cs │ │ │ ├── PersistentVolumeClientV1.cs │ │ │ ├── PodClientV1.cs │ │ │ ├── ReplicaSetClientV1.cs │ │ │ ├── ReplicationControllerClientV1.cs │ │ │ ├── RoleBindingClientV1.cs │ │ │ ├── RoleClientV1.cs │ │ │ ├── SecretClientV1.cs │ │ │ ├── ServiceAccountClientV1.cs │ │ │ ├── ServiceClientV1.cs │ │ │ └── StatefulSetClientV1.cs │ │ └── Utilities/ │ │ ├── HttpRequestHelper.cs │ │ ├── ProcessHelper.cs │ │ └── UriHelper.cs │ ├── KubeClient.Core/ │ │ ├── AssemblyVisiblity.cs │ │ ├── IKubeApiClient.cs │ │ ├── K8sAnnotations.cs │ │ ├── KubeClient.Core.csproj │ │ ├── KubeClientConstants.cs │ │ ├── KubeClientException.cs │ │ ├── KubeClientOptions.cs │ │ └── ResourceClients/ │ │ └── IKubeResourceClient.cs │ ├── KubeClient.Extensions.Configuration/ │ │ ├── ConfigMapConfigurationProvider.cs │ │ ├── ConfigMapConfigurationSource.cs │ │ ├── KubeClient.Extensions.Configuration.csproj │ │ ├── KubeClientConfigurationExtensions.cs │ │ ├── SecretConfigurationProvider.cs │ │ ├── SecretConfigurationSource.cs │ │ └── Settings/ │ │ ├── ConfigMapConfigurationSettings.cs │ │ └── SecretConfigurationSettings.cs │ ├── KubeClient.Extensions.CustomResources/ │ │ ├── CustomResourceClientFactoryExtensions.cs │ │ ├── CustomResourceDefinitionClientV1.cs │ │ ├── CustomResourceDefinitionClientV1Beta1.cs │ │ ├── KubeClient.Extensions.CustomResources.csproj │ │ ├── KubeCustomResourceV1.cs │ │ └── KubeCustomResourceV1Beta1.cs │ ├── KubeClient.Extensions.CustomResources.CodeGen/ │ │ ├── CodeGenHelper.cs │ │ ├── KubeClient.Extensions.CustomResources.CodeGen.csproj │ │ └── ModelGeneratorV1.cs │ ├── KubeClient.Extensions.CustomResources.Schema/ │ │ ├── AssemblyVisibility.cs │ │ ├── CustomResourceSchemaExtensions.cs │ │ ├── JsonSchemaParserV1.cs │ │ ├── KubeClient.Extensions.CustomResources.Schema.csproj │ │ ├── Models.cs │ │ ├── SchemaConstants.cs │ │ ├── SchemaGeneratorV1.cs │ │ ├── SchemaGeneratorV1Beta1.cs │ │ └── Utilities/ │ │ └── NameWrangler.cs │ ├── KubeClient.Extensions.DataProtection/ │ │ ├── DataProtectionExtensions.cs │ │ ├── KubeClient.Extensions.DataProtection.csproj │ │ └── KubeSecretXmlRepository.cs │ ├── KubeClient.Extensions.DependencyInjection/ │ │ ├── ClientRegistrationExtensions.cs │ │ ├── INamedKubeClients.cs │ │ ├── KubeClient.Extensions.DependencyInjection.csproj │ │ ├── KubeClientOptionsRegistrationExtensions.cs │ │ └── NamedKubeClients.cs │ ├── KubeClient.Extensions.KubeConfig/ │ │ ├── Assembly.cs │ │ ├── CryptoHelper.cs │ │ ├── K8sConfig.cs │ │ ├── K8sConfigException.cs │ │ ├── KubeClient.Extensions.KubeConfig.csproj │ │ └── Models/ │ │ ├── AuthProviderConfig.cs │ │ ├── Cluster.cs │ │ ├── ClusterConfig.cs │ │ ├── Context.cs │ │ ├── CredentialPluginConfig.cs │ │ ├── UserIdentity.cs │ │ └── UserIdentityConfig.cs │ ├── KubeClient.Extensions.WebSockets/ │ │ ├── K8sChannelProtocol.cs │ │ ├── K8sMultiplexer.cs │ │ ├── K8sMultiplexerChannelExtensions.cs │ │ ├── KubeClient.Extensions.WebSockets.csproj │ │ ├── KubeClientExtensions.cs │ │ ├── LogEventIds.cs │ │ ├── ResourceClientWebSocketExtensions.cs │ │ ├── Streams/ │ │ │ ├── K8sMultiplexedReadStream.cs │ │ │ └── K8sMultiplexedWriteStream.cs │ │ └── Utilities.cs │ ├── KubeClient.Http/ │ │ ├── AssemblyVisiblity.cs │ │ ├── ClientExtensions.Streamed.cs │ │ ├── ClientExtensions.cs │ │ ├── Clients/ │ │ │ ├── ClientBuilder.cs │ │ │ ├── ClientBuilderExtensions.Typed.cs │ │ │ ├── ClientBuilderExtensions.cs │ │ │ └── ClientBuilderOfTContext.cs │ │ ├── DependencyInjectionExtensions.cs │ │ ├── Diagnostics/ │ │ │ ├── ClientBuilderExtensions.cs │ │ │ ├── LogEventIds.cs │ │ │ ├── LogMessageComponents.cs │ │ │ ├── LoggerExtensions.cs │ │ │ ├── MessageHandlers/ │ │ │ │ └── LoggingMessageHandler.cs │ │ │ └── TypedClientBuilderExtensions.cs │ │ ├── FactoryExtensions.cs │ │ ├── Formatters/ │ │ │ ├── ContentExtensions.cs │ │ │ ├── EncodingWithoutPreamble.cs │ │ │ ├── FormattedObjectContent.cs │ │ │ ├── FormatterClientExtensions.cs │ │ │ ├── FormatterCollection.cs │ │ │ ├── FormatterCollectionExtensions.cs │ │ │ ├── FormatterRequestExtensions.cs │ │ │ ├── FormatterResponseExtensions.cs │ │ │ ├── FormatterTypedRequestExtensions.cs │ │ │ ├── IFormatter.cs │ │ │ ├── IFormatterCollection.cs │ │ │ ├── IInputFormatter.cs │ │ │ ├── IInputOutputFormatter.cs │ │ │ ├── IOutputFormatter.cs │ │ │ ├── InputFormatterContext.cs │ │ │ ├── Json/ │ │ │ │ ├── JsonFormatter.cs │ │ │ │ ├── NewtonsoftJsonFormatter.cs │ │ │ │ ├── NewtonsoftJsonFormatterExtensions.cs │ │ │ │ ├── NewtonsoftJsonFormatterFactoryExtensions.cs │ │ │ │ ├── NewtonsoftJsonFormatterRequestExtensions.cs │ │ │ │ └── NewtonsoftJsonFormatterTypedFactoryExtensions.cs │ │ │ ├── MessageExtensions.cs │ │ │ ├── OutputFormatterContext.cs │ │ │ ├── StreamHelper.cs │ │ │ └── WellKnownMediaTypes.cs │ │ ├── HttpRequest.cs │ │ ├── HttpRequestException.cs │ │ ├── HttpRequestFactory.cs │ │ ├── HttpRequestOfTContext.cs │ │ ├── HttpResponse.cs │ │ ├── IHttpErrorResponse.cs │ │ ├── IHttpRequest.cs │ │ ├── IHttpRequestProperties.cs │ │ ├── KubeClient.Http.csproj │ │ ├── MessageExtensions.cs │ │ ├── MessageProperties.cs │ │ ├── OtherHttpMethods.cs │ │ ├── README.md │ │ ├── RequestActions.cs │ │ ├── RequestExtensions.Headers.cs │ │ ├── RequestExtensions.Helpers.cs │ │ ├── RequestExtensions.QueryParameters.cs │ │ ├── RequestExtensions.RequestActions.cs │ │ ├── RequestExtensions.RequestUri.cs │ │ ├── RequestExtensions.ResponseActions.cs │ │ ├── RequestExtensions.TemplateParameters.cs │ │ ├── RequestHeaderExtensions.cs │ │ ├── ResponseActions.cs │ │ ├── Templates/ │ │ │ ├── ITemplateEvaluationContext.cs │ │ │ ├── LiteralQuerySegment.cs │ │ │ ├── LiteralUriSegment.cs │ │ │ ├── ParameterizedQuerySegment.cs │ │ │ ├── ParameterizedUriSegment.cs │ │ │ ├── QuerySegment.cs │ │ │ ├── RootUriSegment.cs │ │ │ ├── TemplateEvaluationContext.cs │ │ │ ├── TemplateSegment.cs │ │ │ └── UriSegment.cs │ │ ├── TypedClientExtensions.cs │ │ ├── TypedFactoryExtensions.cs │ │ ├── TypedRequestExtensions.Headers.cs │ │ ├── TypedRequestExtensions.Helpers.cs │ │ ├── TypedRequestExtensions.QueryParameters.cs │ │ ├── TypedRequestExtensions.RequestActions.cs │ │ ├── TypedRequestExtensions.RequestUri.cs │ │ ├── TypedRequestExtensions.ResponseActions.cs │ │ ├── TypedRequestExtensions.TemplateParameters.cs │ │ ├── UriTemplate.cs │ │ ├── UriTemplateException.cs │ │ ├── Utilities/ │ │ │ ├── DisposalHelpers.cs │ │ │ ├── HttpRequestBase.cs │ │ │ ├── ReflectionHelper.cs │ │ │ └── UriHelper.cs │ │ └── ValueProviders/ │ │ ├── IValueProvider.cs │ │ ├── ValueProvider.cs │ │ ├── ValueProviderConversion.cs │ │ └── ValueProviderExtensions.cs │ ├── Swagger/ │ │ ├── generate_models.py │ │ ├── kube-1.31-swagger.json │ │ └── kube-swagger.yml │ └── tools/ │ ├── Common.Tools.props │ └── KubeClient.Tools.Generator/ │ ├── KubeClient.Tools.Generator.csproj │ ├── Program.cs │ └── ProgramOptions.cs └── test/ ├── Common.props ├── KubeClient.Extensions.Configuration.Tests/ │ ├── KubeClient.Extensions.Configuration.Tests.csproj │ └── ProviderSemanticsTests.cs ├── KubeClient.Extensions.CustomResources.Tests/ │ ├── GlobalUsings.cs │ ├── KubeClient.Extensions.CustomResources.Tests.csproj │ └── Schema/ │ └── Utilities/ │ └── NameWranglerTests.cs ├── KubeClient.Extensions.DataProtection.Tests/ │ ├── GlobalUsings.cs │ ├── KeyPersistenceTests.cs │ └── KubeClient.Extensions.DataProtection.Tests.csproj ├── KubeClient.Extensions.KubeConfig.Tests/ │ ├── Certificates/ │ │ ├── test-cert-01-key.pem │ │ ├── test-cert-01.pem │ │ └── test-cert-01.pfx │ ├── Configurations/ │ │ └── valid1.yml │ ├── CryptoHelperTests.cs │ ├── DeserializationTests.cs │ ├── K8sConfigLocationTests.cs │ ├── KubeClient.Extensions.KubeConfig.Tests.csproj │ └── OptionsTests.cs ├── KubeClient.Extensions.WebSockets.Tests/ │ ├── KubeClient.Extensions.WebSockets.Tests.csproj │ ├── Logging/ │ │ ├── TestOutputLogger.cs │ │ ├── TestOutputLoggerProvider.cs │ │ └── TestOutputLoggingExtensions.cs │ ├── PodExecTests.cs │ ├── Server/ │ │ ├── Controllers/ │ │ │ ├── PodExecController.cs │ │ │ └── PodPortForwardController.cs │ │ ├── Startup.cs │ │ └── WebSocketTestAdapter.cs │ ├── TestBase.cs │ └── WebSocketTestBase.cs ├── KubeClient.TestCommon/ │ ├── Http/ │ │ └── Testability/ │ │ ├── MessageExtensions.cs │ │ ├── MessageHandlers/ │ │ │ └── MockMessageHandler.cs │ │ └── Xunit/ │ │ ├── MessageAssert.cs │ │ ├── RequestAssert.cs │ │ ├── TestClients.cs │ │ └── TestHandlers.cs │ ├── KubeClient.TestCommon.csproj │ ├── Logging/ │ │ ├── TestOutputLogger.cs │ │ ├── TestOutputLoggerProvider.cs │ │ └── TestOutputLoggingExtensions.cs │ ├── Mocks/ │ │ ├── JsonPatch.cs │ │ ├── MockApiResults.cs │ │ ├── MockKubeApi.cs │ │ ├── MockKubeApiExtensions.cs │ │ └── NewtonsoftJsonHttpResult.cs │ └── TestBase.cs ├── KubeClient.TestCommon.Tests/ │ ├── GlobalUsings.cs │ ├── KubeClient.TestCommon.Tests.csproj │ └── MockKubeApiTests.cs ├── KubeClient.Tests/ │ ├── ErrorHandling/ │ │ ├── ExceptionTests.cs │ │ └── MockMessageHandler.cs │ ├── Http/ │ │ ├── BuildMessage/ │ │ │ ├── TypedRequest.cs │ │ │ └── UntypedRequest.cs │ │ ├── ClientBuilderTests.cs │ │ ├── Diagnostics/ │ │ │ ├── LogEntry.cs │ │ │ ├── LoggingTests.cs │ │ │ └── TestLogger.cs │ │ ├── Formatters/ │ │ │ ├── FormattedRequestTests.cs │ │ │ ├── JsonFormattedRequestTests.cs │ │ │ ├── JsonTestClients.cs │ │ │ ├── MessageExtensions.cs │ │ │ └── ReadResponseTests.cs │ │ ├── TypedClientBuilderTests.cs │ │ ├── TypedRequestTests.cs │ │ ├── UnitTestBase.cs │ │ └── UriTemplateTests.cs │ ├── JsonSerializationTests.cs │ ├── KubeClient.Tests.csproj │ ├── KubeClientOptionsTests.cs │ ├── KubeObjectTests.cs │ ├── KubeResultTests.cs │ ├── Logging/ │ │ ├── LogEntry.cs │ │ └── TestLogger.cs │ ├── LoggingTests.cs │ ├── ModelMetadataTests.cs │ ├── ServerSideApplyTests.cs │ ├── UriHelperTests.cs │ └── YamlSerializationTests.cs └── TestProject.Common.props ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] indent_style = space # Code files [*.{cs,csx,vb,vbx}] indent_size = 4 # Xml project files [*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] indent_size = 2 # Xml config files [*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] indent_size = 2 # JSON [*.json] indent_size = 2 # YAML [*.{yml,yaml}] indent_size = 2 # Docs [*.{rst, md}] indent_size = 4 # .NET code style settings: [*.{cs,vb}] dotnet_sort_system_directives_first = false # Avoid the use of redundant access modifiers dotnet_style_require_accessibility_modifiers = never:suggestion # Avoid "this." and "Me." if not necessary dotnet_style_qualification_for_field = false:suggestion dotnet_style_qualification_for_property = false:suggestion dotnet_style_qualification_for_method = false:suggestion dotnet_style_qualification_for_event = false:suggestion # Use language keywords instead of framework type names for type references dotnet_style_predefined_type_for_locals_parameters_members = true dotnet_style_predefined_type_for_member_access = false # Suggest more modern language features when available dotnet_style_object_initializer = true:suggestion dotnet_style_collection_initializer = true:suggestion dotnet_style_coalesce_expression = true:suggestion dotnet_style_null_propagation = true:suggestion dotnet_style_explicit_tuple_names = true:suggestion # C#-specific code style settings: [*.cs] # Use var sparingly csharp_style_var_for_built_in_types = false:warning csharp_style_var_when_type_is_apparent = false:none csharp_style_var_elsewhere = false:suggestion # Prefer method-like constructs to have a block body csharp_style_expression_bodied_methods = false:none csharp_style_expression_bodied_constructors = false:none csharp_style_expression_bodied_operators = false:none # Prefer property-like constructs to have an expression-body csharp_style_expression_bodied_properties = true:none csharp_style_expression_bodied_indexers = true:none csharp_style_expression_bodied_accessors = true:none # Suggest more modern language features when appropriate csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion csharp_style_pattern_matching_over_as_with_null_check = true:suggestion csharp_style_inlined_variable_declaration = true:suggestion csharp_style_conditional_delegate_call = true:suggestion csharp_style_throw_expression = false:none # Newline settings csharp_new_line_before_open_brace = all csharp_new_line_before_else = true csharp_new_line_before_catch = true csharp_new_line_before_finally = true csharp_new_line_before_members_in_object_initializers = true csharp_new_line_before_members_in_anonymous_types = true # Spacing csharp_space_between_method_call_parameter_list_parentheses = false csharp_space_between_method_declaration_parameter_list_parentheses = false csharp_space_between_parentheses = false ================================================ FILE: .gitignore ================================================ ## Mac .DS_Store ## GitVersion version-info.json # VS Code .vscode/* ## Visual Studio # User-specific files *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUNIT *.VisualState.xml TestResult.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET Core project.lock.json project.fragment.lock.json artifacts/ **/Properties/launchSettings.json # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_i.h *.ilk *.meta *.obj *.pch *.pdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # JustCode is a .NET coding add-in .JustCode # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx !test/**/*.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # TypeScript v1 declaration files typings/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # JetBrains Rider .idea/ *.sln.iml # CodeRush .cr/ # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik's JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog .mono/registry/* ================================================ FILE: GitVersion.yml ================================================ # Versioning scheme for KubeClient assembly-versioning-scheme: Major mode: ContinuousDelivery ignore: sha: [] branches: master: regex: master mode: ContinuousDelivery tag: '' increment: Patch prevent-increment-of-merged-branch-version: true track-merge-target: false tracks-release-branches: false is-release-branch: false is-mainline: true source-branches: [ 'develop' ] develop: regex: develop mode: ContinuousDeployment tag: develop increment: Patch prevent-increment-of-merged-branch-version: false track-merge-target: true tracks-release-branches: true is-release-branch: false source-branches: [ 'feature' ] feature: mode: ContinuousDeployment regex: feature?[/-] tag: useBranchName increment: Minor prevent-increment-of-merged-branch-version: false track-merge-target: false pull-request: regex: (pull|pull\-request|pr)[/-] mode: ContinuousDelivery tag: PullRequest increment: Inherit prevent-increment-of-merged-branch-version: false tag-number-pattern: '[/-](?\d+)[-/]' track-merge-target: false tracks-release-branches: false is-release-branch: false ================================================ FILE: ISSUE ================================================ ** Microsoft .NET Core Framework (CoreFX) ** ** https://github.com/dotnet/corefx/blob/fab6ae579aff17cb9b464b2b167b7dfd8fcea175/LICENSE.TXT The MIT License (MIT) Copyright (c) .NET Foundation and Contributors All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: KubeClient.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.8.34309.116 MinimumVisualStudioVersion = 15.0.26124.0 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{A63FB1EF-91AF-4DFA-A93E-FDD7BB34A8ED}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConfigFromConfigMap", "samples\ConfigFromConfigMap\ConfigFromConfigMap.csproj", "{99CE5F17-44BC-4B84-A80D-1C1DCE863D10}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DeploymentWithRollback", "samples\DeploymentWithRollback\DeploymentWithRollback.csproj", "{94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExtensionsSample", "samples\ExtensionsSample\ExtensionsSample.csproj", "{FBFD0479-DF38-42EC-B85E-7E389442F6A3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoobExec", "samples\noob-exec\NoobExec.csproj", "{EF958989-E9D5-4F79-88BE-8932D9C03C26}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WatchEvents", "samples\WatchEvents\WatchEvents.csproj", "{BB71C7E4-4039-4134-8F1E-B20AD703D25D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A3D60BFF-155C-404C-B6FC-B9B120B7D102}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient", "src\KubeClient\KubeClient.csproj", "{6547822A-99E8-48E0-A15A-7679BB4559DA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.Configuration", "src\KubeClient.Extensions.Configuration\KubeClient.Extensions.Configuration.csproj", "{897CE942-382A-4FAF-8B71-0C667D899F66}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.CustomResources", "src\KubeClient.Extensions.CustomResources\KubeClient.Extensions.CustomResources.csproj", "{BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.DependencyInjection", "src\KubeClient.Extensions.DependencyInjection\KubeClient.Extensions.DependencyInjection.csproj", "{17922755-3251-4111-89FE-64859D559409}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.KubeConfig", "src\KubeClient.Extensions.KubeConfig\KubeClient.Extensions.KubeConfig.csproj", "{3C3B6126-78CB-4C6B-B472-17C7AE391E0D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.WebSockets", "src\KubeClient.Extensions.WebSockets\KubeClient.Extensions.WebSockets.csproj", "{C98D0F17-A91C-413B-82D3-4C32D1B04425}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1286A675-A314-4874-95B6-A1C31A579F38}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.Configuration.Tests", "test\KubeClient.Extensions.Configuration.Tests\KubeClient.Extensions.Configuration.Tests.csproj", "{95CCAFD5-069A-4CB2-BA17-55F7F085A316}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.KubeConfig.Tests", "test\KubeClient.Extensions.KubeConfig.Tests\KubeClient.Extensions.KubeConfig.Tests.csproj", "{ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.WebSockets.Tests", "test\KubeClient.Extensions.WebSockets.Tests\KubeClient.Extensions.WebSockets.Tests.csproj", "{2004D34D-3A09-405E-861C-3FF3488947F4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.TestCommon", "test\KubeClient.TestCommon\KubeClient.TestCommon.csproj", "{2151F49D-004F-4967-8D4B-C8F0113683F1}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.DataProtection", "src\KubeClient.Extensions.DataProtection\KubeClient.Extensions.DataProtection.csproj", "{4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Tests", "test\KubeClient.Tests\KubeClient.Tests.csproj", "{B1386E24-076A-4A7C-A085-E850B49C6BE5}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Extensions.DataProtection.Tests", "test\KubeClient.Extensions.DataProtection.Tests\KubeClient.Extensions.DataProtection.Tests.csproj", "{9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.TestCommon.Tests", "test\KubeClient.TestCommon.Tests\KubeClient.TestCommon.Tests.csproj", "{14E072CF-8752-4981-A677-819A537D2E12}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{6CED6707-0ADD-484A-BFD8-EBCDF49B2344}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubeClient.Tools.Generator", "src\tools\KubeClient.Tools.Generator\KubeClient.Tools.Generator.csproj", "{0FDFFE17-6F60-4523-AAFE-77F54A640D0F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubeClient.Extensions.CustomResources.Schema", "src\KubeClient.Extensions.CustomResources.Schema\KubeClient.Extensions.CustomResources.Schema.csproj", "{12FB8C5C-E8B9-4E12-82E6-5C40500532D0}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubeClient.Extensions.CustomResources.CodeGen", "src\KubeClient.Extensions.CustomResources.CodeGen\KubeClient.Extensions.CustomResources.CodeGen.csproj", "{E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubeClient.Extensions.CustomResources.Tests", "test\KubeClient.Extensions.CustomResources.Tests\KubeClient.Extensions.CustomResources.Tests.csproj", "{6F6CD966-35A6-4A56-8D4C-D87EEE383374}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubeClient.Http", "src\KubeClient.Http\KubeClient.Http.csproj", "{C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KubeClient.Core", "src\KubeClient.Core\KubeClient.Core.csproj", "{AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "root", "root", "{A8292A1B-F872-4A30-84D4-31C09842FBB5}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig azure-pipelines.yml = azure-pipelines.yml Package-README.md = Package-README.md README.md = README.md EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Debug|Any CPU.Build.0 = Debug|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Debug|x64.ActiveCfg = Debug|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Debug|x64.Build.0 = Debug|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Debug|x86.ActiveCfg = Debug|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Debug|x86.Build.0 = Debug|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Release|Any CPU.ActiveCfg = Release|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Release|Any CPU.Build.0 = Release|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Release|x64.ActiveCfg = Release|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Release|x64.Build.0 = Release|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Release|x86.ActiveCfg = Release|Any CPU {99CE5F17-44BC-4B84-A80D-1C1DCE863D10}.Release|x86.Build.0 = Release|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Debug|Any CPU.Build.0 = Debug|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Debug|x64.ActiveCfg = Debug|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Debug|x64.Build.0 = Debug|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Debug|x86.ActiveCfg = Debug|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Debug|x86.Build.0 = Debug|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Release|Any CPU.ActiveCfg = Release|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Release|Any CPU.Build.0 = Release|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Release|x64.ActiveCfg = Release|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Release|x64.Build.0 = Release|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Release|x86.ActiveCfg = Release|Any CPU {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437}.Release|x86.Build.0 = Release|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Debug|Any CPU.Build.0 = Debug|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Debug|x64.ActiveCfg = Debug|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Debug|x64.Build.0 = Debug|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Debug|x86.ActiveCfg = Debug|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Debug|x86.Build.0 = Debug|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Release|Any CPU.ActiveCfg = Release|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Release|Any CPU.Build.0 = Release|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Release|x64.ActiveCfg = Release|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Release|x64.Build.0 = Release|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Release|x86.ActiveCfg = Release|Any CPU {FBFD0479-DF38-42EC-B85E-7E389442F6A3}.Release|x86.Build.0 = Release|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Debug|Any CPU.Build.0 = Debug|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Debug|x64.ActiveCfg = Debug|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Debug|x64.Build.0 = Debug|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Debug|x86.ActiveCfg = Debug|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Debug|x86.Build.0 = Debug|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Release|Any CPU.ActiveCfg = Release|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Release|Any CPU.Build.0 = Release|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Release|x64.ActiveCfg = Release|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Release|x64.Build.0 = Release|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Release|x86.ActiveCfg = Release|Any CPU {EF958989-E9D5-4F79-88BE-8932D9C03C26}.Release|x86.Build.0 = Release|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Debug|Any CPU.Build.0 = Debug|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Debug|x64.ActiveCfg = Debug|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Debug|x64.Build.0 = Debug|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Debug|x86.ActiveCfg = Debug|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Debug|x86.Build.0 = Debug|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Release|Any CPU.Build.0 = Release|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Release|x64.ActiveCfg = Release|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Release|x64.Build.0 = Release|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Release|x86.ActiveCfg = Release|Any CPU {BB71C7E4-4039-4134-8F1E-B20AD703D25D}.Release|x86.Build.0 = Release|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Debug|Any CPU.Build.0 = Debug|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Debug|x64.ActiveCfg = Debug|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Debug|x64.Build.0 = Debug|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Debug|x86.ActiveCfg = Debug|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Debug|x86.Build.0 = Debug|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Release|Any CPU.ActiveCfg = Release|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Release|Any CPU.Build.0 = Release|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Release|x64.ActiveCfg = Release|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Release|x64.Build.0 = Release|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Release|x86.ActiveCfg = Release|Any CPU {6547822A-99E8-48E0-A15A-7679BB4559DA}.Release|x86.Build.0 = Release|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Debug|Any CPU.Build.0 = Debug|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Debug|x64.ActiveCfg = Debug|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Debug|x64.Build.0 = Debug|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Debug|x86.ActiveCfg = Debug|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Debug|x86.Build.0 = Debug|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Release|Any CPU.ActiveCfg = Release|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Release|Any CPU.Build.0 = Release|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Release|x64.ActiveCfg = Release|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Release|x64.Build.0 = Release|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Release|x86.ActiveCfg = Release|Any CPU {897CE942-382A-4FAF-8B71-0C667D899F66}.Release|x86.Build.0 = Release|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Debug|Any CPU.Build.0 = Debug|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Debug|x64.ActiveCfg = Debug|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Debug|x64.Build.0 = Debug|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Debug|x86.ActiveCfg = Debug|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Debug|x86.Build.0 = Debug|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Release|Any CPU.ActiveCfg = Release|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Release|Any CPU.Build.0 = Release|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Release|x64.ActiveCfg = Release|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Release|x64.Build.0 = Release|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Release|x86.ActiveCfg = Release|Any CPU {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8}.Release|x86.Build.0 = Release|Any CPU {17922755-3251-4111-89FE-64859D559409}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {17922755-3251-4111-89FE-64859D559409}.Debug|Any CPU.Build.0 = Debug|Any CPU {17922755-3251-4111-89FE-64859D559409}.Debug|x64.ActiveCfg = Debug|Any CPU {17922755-3251-4111-89FE-64859D559409}.Debug|x64.Build.0 = Debug|Any CPU {17922755-3251-4111-89FE-64859D559409}.Debug|x86.ActiveCfg = Debug|Any CPU {17922755-3251-4111-89FE-64859D559409}.Debug|x86.Build.0 = Debug|Any CPU {17922755-3251-4111-89FE-64859D559409}.Release|Any CPU.ActiveCfg = Release|Any CPU {17922755-3251-4111-89FE-64859D559409}.Release|Any CPU.Build.0 = Release|Any CPU {17922755-3251-4111-89FE-64859D559409}.Release|x64.ActiveCfg = Release|Any CPU {17922755-3251-4111-89FE-64859D559409}.Release|x64.Build.0 = Release|Any CPU {17922755-3251-4111-89FE-64859D559409}.Release|x86.ActiveCfg = Release|Any CPU {17922755-3251-4111-89FE-64859D559409}.Release|x86.Build.0 = Release|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Debug|x64.ActiveCfg = Debug|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Debug|x64.Build.0 = Debug|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Debug|x86.ActiveCfg = Debug|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Debug|x86.Build.0 = Debug|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Release|Any CPU.Build.0 = Release|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Release|x64.ActiveCfg = Release|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Release|x64.Build.0 = Release|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Release|x86.ActiveCfg = Release|Any CPU {3C3B6126-78CB-4C6B-B472-17C7AE391E0D}.Release|x86.Build.0 = Release|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Debug|Any CPU.Build.0 = Debug|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Debug|x64.ActiveCfg = Debug|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Debug|x64.Build.0 = Debug|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Debug|x86.ActiveCfg = Debug|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Debug|x86.Build.0 = Debug|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Release|Any CPU.ActiveCfg = Release|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Release|Any CPU.Build.0 = Release|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Release|x64.ActiveCfg = Release|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Release|x64.Build.0 = Release|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Release|x86.ActiveCfg = Release|Any CPU {C98D0F17-A91C-413B-82D3-4C32D1B04425}.Release|x86.Build.0 = Release|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Debug|Any CPU.Build.0 = Debug|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Debug|x64.ActiveCfg = Debug|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Debug|x64.Build.0 = Debug|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Debug|x86.ActiveCfg = Debug|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Debug|x86.Build.0 = Debug|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Release|Any CPU.ActiveCfg = Release|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Release|Any CPU.Build.0 = Release|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Release|x64.ActiveCfg = Release|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Release|x64.Build.0 = Release|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Release|x86.ActiveCfg = Release|Any CPU {95CCAFD5-069A-4CB2-BA17-55F7F085A316}.Release|x86.Build.0 = Release|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Debug|Any CPU.Build.0 = Debug|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Debug|x64.ActiveCfg = Debug|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Debug|x64.Build.0 = Debug|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Debug|x86.ActiveCfg = Debug|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Debug|x86.Build.0 = Debug|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Release|Any CPU.ActiveCfg = Release|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Release|Any CPU.Build.0 = Release|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Release|x64.ActiveCfg = Release|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Release|x64.Build.0 = Release|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Release|x86.ActiveCfg = Release|Any CPU {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3}.Release|x86.Build.0 = Release|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Debug|Any CPU.Build.0 = Debug|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Debug|x64.ActiveCfg = Debug|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Debug|x64.Build.0 = Debug|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Debug|x86.ActiveCfg = Debug|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Debug|x86.Build.0 = Debug|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Release|Any CPU.ActiveCfg = Release|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Release|Any CPU.Build.0 = Release|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Release|x64.ActiveCfg = Release|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Release|x64.Build.0 = Release|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Release|x86.ActiveCfg = Release|Any CPU {2004D34D-3A09-405E-861C-3FF3488947F4}.Release|x86.Build.0 = Release|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Debug|Any CPU.Build.0 = Debug|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Debug|x64.ActiveCfg = Debug|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Debug|x64.Build.0 = Debug|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Debug|x86.ActiveCfg = Debug|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Debug|x86.Build.0 = Debug|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Release|Any CPU.ActiveCfg = Release|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Release|Any CPU.Build.0 = Release|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Release|x64.ActiveCfg = Release|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Release|x64.Build.0 = Release|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Release|x86.ActiveCfg = Release|Any CPU {2151F49D-004F-4967-8D4B-C8F0113683F1}.Release|x86.Build.0 = Release|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Debug|Any CPU.Build.0 = Debug|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Debug|x64.ActiveCfg = Debug|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Debug|x64.Build.0 = Debug|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Debug|x86.ActiveCfg = Debug|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Debug|x86.Build.0 = Debug|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Release|Any CPU.ActiveCfg = Release|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Release|Any CPU.Build.0 = Release|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Release|x64.ActiveCfg = Release|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Release|x64.Build.0 = Release|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Release|x86.ActiveCfg = Release|Any CPU {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E}.Release|x86.Build.0 = Release|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Debug|x64.ActiveCfg = Debug|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Debug|x64.Build.0 = Debug|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Debug|x86.ActiveCfg = Debug|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Debug|x86.Build.0 = Debug|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Release|Any CPU.ActiveCfg = Release|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Release|Any CPU.Build.0 = Release|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Release|x64.ActiveCfg = Release|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Release|x64.Build.0 = Release|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Release|x86.ActiveCfg = Release|Any CPU {B1386E24-076A-4A7C-A085-E850B49C6BE5}.Release|x86.Build.0 = Release|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Debug|Any CPU.Build.0 = Debug|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Debug|x64.ActiveCfg = Debug|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Debug|x64.Build.0 = Debug|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Debug|x86.ActiveCfg = Debug|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Debug|x86.Build.0 = Debug|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Release|Any CPU.ActiveCfg = Release|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Release|Any CPU.Build.0 = Release|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Release|x64.ActiveCfg = Release|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Release|x64.Build.0 = Release|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Release|x86.ActiveCfg = Release|Any CPU {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0}.Release|x86.Build.0 = Release|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Debug|Any CPU.Build.0 = Debug|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Debug|x64.ActiveCfg = Debug|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Debug|x64.Build.0 = Debug|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Debug|x86.ActiveCfg = Debug|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Debug|x86.Build.0 = Debug|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Release|Any CPU.ActiveCfg = Release|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Release|Any CPU.Build.0 = Release|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Release|x64.ActiveCfg = Release|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Release|x64.Build.0 = Release|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Release|x86.ActiveCfg = Release|Any CPU {14E072CF-8752-4981-A677-819A537D2E12}.Release|x86.Build.0 = Release|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Debug|Any CPU.Build.0 = Debug|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Debug|x64.ActiveCfg = Debug|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Debug|x64.Build.0 = Debug|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Debug|x86.ActiveCfg = Debug|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Debug|x86.Build.0 = Debug|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Release|Any CPU.Build.0 = Release|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Release|x64.ActiveCfg = Release|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Release|x64.Build.0 = Release|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Release|x86.ActiveCfg = Release|Any CPU {0FDFFE17-6F60-4523-AAFE-77F54A640D0F}.Release|x86.Build.0 = Release|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Debug|x64.ActiveCfg = Debug|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Debug|x64.Build.0 = Debug|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Debug|x86.ActiveCfg = Debug|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Debug|x86.Build.0 = Debug|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Release|Any CPU.Build.0 = Release|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Release|x64.ActiveCfg = Release|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Release|x64.Build.0 = Release|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Release|x86.ActiveCfg = Release|Any CPU {12FB8C5C-E8B9-4E12-82E6-5C40500532D0}.Release|x86.Build.0 = Release|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Debug|Any CPU.Build.0 = Debug|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Debug|x64.ActiveCfg = Debug|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Debug|x64.Build.0 = Debug|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Debug|x86.ActiveCfg = Debug|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Debug|x86.Build.0 = Debug|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Release|Any CPU.Build.0 = Release|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Release|x64.ActiveCfg = Release|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Release|x64.Build.0 = Release|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Release|x86.ActiveCfg = Release|Any CPU {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C}.Release|x86.Build.0 = Release|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Debug|Any CPU.Build.0 = Debug|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Debug|x64.ActiveCfg = Debug|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Debug|x64.Build.0 = Debug|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Debug|x86.ActiveCfg = Debug|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Debug|x86.Build.0 = Debug|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Release|Any CPU.ActiveCfg = Release|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Release|Any CPU.Build.0 = Release|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Release|x64.ActiveCfg = Release|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Release|x64.Build.0 = Release|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Release|x86.ActiveCfg = Release|Any CPU {6F6CD966-35A6-4A56-8D4C-D87EEE383374}.Release|x86.Build.0 = Release|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Debug|Any CPU.Build.0 = Debug|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Debug|x64.ActiveCfg = Debug|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Debug|x64.Build.0 = Debug|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Debug|x86.ActiveCfg = Debug|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Debug|x86.Build.0 = Debug|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Release|Any CPU.ActiveCfg = Release|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Release|Any CPU.Build.0 = Release|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Release|x64.ActiveCfg = Release|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Release|x64.Build.0 = Release|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Release|x86.ActiveCfg = Release|Any CPU {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7}.Release|x86.Build.0 = Release|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Debug|Any CPU.Build.0 = Debug|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Debug|x64.ActiveCfg = Debug|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Debug|x64.Build.0 = Debug|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Debug|x86.ActiveCfg = Debug|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Debug|x86.Build.0 = Debug|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Release|Any CPU.Build.0 = Release|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Release|x64.ActiveCfg = Release|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Release|x64.Build.0 = Release|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Release|x86.ActiveCfg = Release|Any CPU {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {99CE5F17-44BC-4B84-A80D-1C1DCE863D10} = {A63FB1EF-91AF-4DFA-A93E-FDD7BB34A8ED} {94CAB2AF-B5A1-4B2D-A6A0-BA55D062E437} = {A63FB1EF-91AF-4DFA-A93E-FDD7BB34A8ED} {FBFD0479-DF38-42EC-B85E-7E389442F6A3} = {A63FB1EF-91AF-4DFA-A93E-FDD7BB34A8ED} {EF958989-E9D5-4F79-88BE-8932D9C03C26} = {A63FB1EF-91AF-4DFA-A93E-FDD7BB34A8ED} {BB71C7E4-4039-4134-8F1E-B20AD703D25D} = {A63FB1EF-91AF-4DFA-A93E-FDD7BB34A8ED} {6547822A-99E8-48E0-A15A-7679BB4559DA} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {897CE942-382A-4FAF-8B71-0C667D899F66} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {BEF993D4-2631-4C44-9BAD-B8A39DE4EAF8} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {17922755-3251-4111-89FE-64859D559409} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {3C3B6126-78CB-4C6B-B472-17C7AE391E0D} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {C98D0F17-A91C-413B-82D3-4C32D1B04425} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {95CCAFD5-069A-4CB2-BA17-55F7F085A316} = {1286A675-A314-4874-95B6-A1C31A579F38} {ECC15A63-5C5A-4E35-A6E9-9A3854784DE3} = {1286A675-A314-4874-95B6-A1C31A579F38} {2004D34D-3A09-405E-861C-3FF3488947F4} = {1286A675-A314-4874-95B6-A1C31A579F38} {2151F49D-004F-4967-8D4B-C8F0113683F1} = {1286A675-A314-4874-95B6-A1C31A579F38} {4B6C7D05-0B7D-42A8-97CD-B6D2E3219F8E} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {B1386E24-076A-4A7C-A085-E850B49C6BE5} = {1286A675-A314-4874-95B6-A1C31A579F38} {9D22E74C-8676-4E8D-9F53-AFFB7DB4B7B0} = {1286A675-A314-4874-95B6-A1C31A579F38} {14E072CF-8752-4981-A677-819A537D2E12} = {1286A675-A314-4874-95B6-A1C31A579F38} {6CED6707-0ADD-484A-BFD8-EBCDF49B2344} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {0FDFFE17-6F60-4523-AAFE-77F54A640D0F} = {6CED6707-0ADD-484A-BFD8-EBCDF49B2344} {12FB8C5C-E8B9-4E12-82E6-5C40500532D0} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {E6A8F795-8E4C-44E4-9AAF-E2D14FDEF62C} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {6F6CD966-35A6-4A56-8D4C-D87EEE383374} = {1286A675-A314-4874-95B6-A1C31A579F38} {C0CA0EB4-4B27-4C9D-8140-4837733D9FB7} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} {AD306A6F-B4A5-4AC0-B111-E3FF85DD16D6} = {A3D60BFF-155C-404C-B6FC-B9B120B7D102} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1573E771-2F69-48B2-A68A-6380B17F619C} EndGlobalSection EndGlobal ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2018 Adam Friedman Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: NuGet.config ================================================  ================================================ FILE: Package-README.md ================================================ # KubeClient [![Build Status](https://dev.azure.com/tintoy-dev/dotnet-kube-client/_apis/build/status%2Ftintoy.dotnet-kube-client?branchName=master)](https://dev.azure.com/tintoy-dev/dotnet-kube-client/_build/latest?definitionId=4&branchName=master) KubeClient is an extensible Kubernetes API client for .NET (targets `netstandard2.1`, `net7.0` `net8.0`, `net9.0`, and `net10.0`). **NOTE**: KubeClient v3.x introduces some breaking changes, relative to v2.x (see the [migration guide](#migration-from-v2x) below). There is also an [official](https://github.com/kubernetes-client/csharp/) .NET client for Kubernetes (both clients used to share code in a couple of places). These two clients are philosophically-different (from a design perspective) but either can be bent to fit your needs. For more information about how KubeClient differs from the official client, see the section below on [extensibility](#extensibility). ## Packages * `KubeClient` (`netstandard2.1` / `net7.0` or newer) The main client and models. [![KubeClient](https://img.shields.io/nuget/v/KubeClient.svg)](https://www.nuget.org/packages/KubeClient) * `KubeClient.Extensions.Configuration` (`net7.0` or newer) Support for sourcing `Microsoft.Extensions.Configuration` data from Kubernetes Secrets and ConfigMaps. [![KubeClient.Extensions.KubeConfig](https://img.shields.io/nuget/v/KubeClient.Extensions.Configuration.svg)](https://www.nuget.org/packages/KubeClient.Extensions.Configuration) * `KubeClient.Extensions.DependencyInjection` (`net7.0` or newer) Dependency-injection support. [![KubeClient.Extensions.KubeConfig](https://img.shields.io/nuget/v/KubeClient.Extensions.DependencyInjection.svg)](https://www.nuget.org/packages/KubeClient.Extensions.DependencyInjection) * `KubeClient.Extensions.KubeConfig` (`net7.0` or newer) Support for loading and parsing configuration from `~/.kube/config`. [![KubeClient.Extensions.KubeConfig](https://img.shields.io/nuget/v/KubeClient.Extensions.KubeConfig.svg)](https://www.nuget.org/packages/KubeClient.Extensions.KubeConfig) * `KubeClient.Extensions.WebSockets` (`net7.0` or newer) Support for multiplexed WebSocket connections used by Kubernetes APIs (such as [exec](src/KubeClient.Extensions.WebSockets/ResourceClientWebSocketExtensions.cs#L56)). This package also extends resource clients to add support for those APIs. If you want to use the latest (development) builds of KubeClient, add the following feed to `NuGet.config`: https://www.myget.org/F/dotnet-kube-client/api/v3/index.json ## Usage The client can be used directly or injected via `Microsoft.Extensions.DependencyInjection`. ### Use the client directly The simplest way to create a client is to call `KubeApiClient.Create()`. There are overloads if you want to provide an access token, client certificate, or customise validation of the server's certificate: ```csharp // Assumes you're using "kubectl proxy", and no authentication is required. KubeApiClient client = KubeApiClient.Create("http://localhost:8001"); PodListV1 pods = await client.PodsV1().List( labelSelector: "k8s-app=my-app" ); ``` For more flexible configuration, use the overload that takes `KubeClientOptions`: ```csharp KubeApiClient client = KubeApiClient.Create(new KubeClientOptions { ApiEndPoint = new Uri("http://localhost:8001"), AuthStrategy = KubeAuthStrategy.BearerToken, AccessToken = "my-access-token", AllowInsecure = true // Don't validate server certificate }); ``` You can enable logging of requests and responses by passing an `ILoggerFactory` to `KubeApiClient.Create()` or `KubeClientOptions.LoggerFactory`: ```csharp ILoggerFactory loggers = new LoggerFactory(); loggers.AddConsole(); KubeApiClient client = KubeApiClient.Create("http://localhost:8001", loggers); ``` ### Configure the client from ~/.kube/config ```csharp using KubeClient.Extensions.KubeConfig; KubeClientOptions clientOptions = K8sConfig.Load(kubeConfigFile).ToKubeClientOptions( kubeContextName: "my-cluster", defaultKubeNamespace: "kube-system" ); KubeApiClient client = KubeApiClient.Create(clientOptions); ``` ### Make the client available for dependency injection The client can be configured for dependency injection in a variety of ways. To use a fixed set of options for the client, use the overload of `AddKubeClient()` that takes `KubeClientoptions`: ```csharp void ConfigureServices(IServiceCollection services) { services.AddKubeClient(new KubeClientOptions { ApiEndPoint = new Uri("http://localhost:8001"), AuthStrategy = KubeAuthStrategy.BearerToken, AccessToken = "my-access-token", AllowInsecure = true // Don't validate server certificate }); } ``` To add a named instance of the client: ```csharp void ConfigureServices(IServiceCollection services) { services.AddNamedKubeClients(); services.AddKubeClientOptions("my-cluster", clientOptions => { clientOptions.ApiEndPoint = new Uri("http://localhost:8001"); clientOptions.AuthStrategy = KubeAuthStrategy.BearerToken; clientOptions.AccessToken = "my-access-token"; clientOptions.AllowInsecure = true; // Don't validate server certificate }); // OR: services.AddKubeClient("my-cluster", clientOptions => { clientOptions.ApiEndPoint = new Uri("http://localhost:8001"); clientOptions.AuthStrategy = KubeAuthStrategy.BearerToken; clientOptions.AccessToken = "my-access-token"; clientOptions.AllowInsecure = true; // Don't validate server certificate }); } // To use named instances of KubeApiClient, inject INamedKubeClients. class MyClass { public MyClass(INamedKubeClients namedKubeClients) { KubeClient1 = namedKubeClients.Get("my-cluster"); KubeClient2 = namedKubeClients.Get("another-cluster"); } IKubeApiClient KubeClient1 { get; } IKubeApiClient KubeClient2 { get; } } ``` ## Design philosophy Use of code generation is limited; generated clients tend to wind up being non-idiomatic and, for a Swagger spec as large as that of Kubernetes, wind up placing too many methods directly on the client class. KubeClient's approach is to generate model classes (see `src/swagger` for the Python script that does this) and hand-code the actual operation methods to provide an improved consumer experience (i.e. useful and consistent exception types). ### KubeResultV1 Some operations in the Kubernetes API can return a different response depending on the arguments passed in. For example, a request to delete a `v1/Pod` returns the existing `v1/Pod` (as a `PodV1` model) if the caller specifies `DeletePropagationPolicy.Foreground` but returns a `v1/Status` (as a `StatusV1` model) if any other type of `DeletePropagationPolicy` is specified. To handle this type of polymorphic response KubeClient uses the `KubeResultV1` model (and its derived implementations, `KubeResourceResultV1` and `KubeResourceListResultV1`). `KubeResourceResultV1` can be implicitly cast to a `TResource` or a `StatusV1`, so consuming code can continue to use the client as if it expects an operation to return only a resource or expects it to return only a `StatusV1`: ```csharp PodV1 existingPod = await client.PodsV1().Delete("mypod", propagationPolicy: DeletePropagationPolicy.Foreground); // OR: StatusV1 deleteStatus = await client.PodsV1().Delete("mypod", propagationPolicy: DeletePropagationPolicy.Background); ``` If an attempt is made to cast a `KubeResourceResultV1` that contains a non-success `StatusV1` to a `TResource`, a `KubeApiException` is thrown, based on the information in the `StatusV1`: ```csharp PodV1 existingPod; try { existingPod = await client.PodsV1().Delete("mypod", propagationPolicy: DeletePropagationPolicy.Foreground); } catch (KubeApiException kubeApiError) { Log.Error(kubeApiError, "Failed to delete Pod: {ErrorMessage}", kubeApiError.Status.Message); } ``` For more information about the behaviour of `KubeResultV1` and its derived implementations, see [KubeResultTests.cs](test/KubeClient.Tests/KubeResultTests.cs). ## Extensibility KubeClient is designed to be easily extensible. The `KubeApiClient` provides the top-level entry point for the Kubernetes API and extension methods are used to expose more specific resource clients. Simplified version of [PodClientV1.cs](src/KubeClient/ResourceClients/PodClientV1.cs): ```csharp public class PodClientV1 : KubeResourceClient { public PodClientV1(KubeApiClient client) : base(client) { } public async Task> List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { PodListV1 matchingPods = await Http.GetAsync( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async(); return matchingPods.Items; } public static class Requests { public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/pods?labelSelector={LabelSelector?}&watch={Watch?}"); } } ``` Simplified version of [ClientFactoryExtensions.cs](src/KubeClient/ClientFactoryExtensions.cs#L97): ```csharp public static PodClientV1 PodsV1(this KubeApiClient kubeClient) { return kubeClient.ResourceClient( client => new PodClientV1(client) ); } ``` This enables the following usage of `KubeApiClient`: ```csharp KubeApiClient client; PodListV1 pods = await client.PodsV1().List(kubeNamespace: "kube-system"); ``` Through the use of extension methods, resource clients (or additional operations) can be declared in any assembly and used as if they are part of the `KubeApiClient`. For example, the `KubeClient.Extensions.WebSockets` package adds an `ExecAndConnect` method to `PodClientV1`. Simplified version of [ResourceClientWebSocketExtensions.cs](src/KubeClient.Extensions.WebSockets/ResourceClientWebSocketExtensions.cs#L56): ```csharp public static async Task ExecAndConnect(this IPodClientV1 podClient, string podName, string command, bool stdin = false, bool stdout = true, bool stderr = false, bool tty = false, string container = null, string kubeNamespace = null, CancellationToken cancellation = default) { byte[] outputStreamIndexes = stdin ? new byte[1] { 0 } : new byte[0]; byte[] inputStreamIndexes; if (stdout && stderr) inputStreamIndexes = new byte[2] { 1, 2 }; else if (stdout) inputStreamIndexes = new byte[1] { 1 }; else if (stderr) inputStreamIndexes = new byte[1] { 2 }; else if (!stdin) throw new InvalidOperationException("Must specify at least one of STDIN, STDOUT, or STDERR."); else inputStreamIndexes = new byte[0]; return await podClient.KubeClient .ConnectWebSocket("api/v1/namespaces/{KubeNamespace}/pods/{PodName}/exec?stdin={StdIn?}&stdout={StdOut?}&stderr={StdErr?}&tty={TTY?}&command={Command}&container={Container?}", new { PodName = podName, Command = command, StdIn = stdin, StdOut = stdout, StdErr = stderr, TTY = tty, Container = container, KubeNamespace = kubeNamespace ?? podClient.KubeClient.DefaultNamespace }, cancellation) .Multiplexed(inputStreamIndexes, outputStreamIndexes, loggerFactory: podClient.KubeClient.LoggerFactory() ); } ``` Example usage of `ExecAndConnect`: ```csharp KubeApiClient client; K8sMultiplexer connection = await client.PodsV1().ExecAndConnect( podName: "my-pod", command: "/bin/bash", stdin: true, stdout: true, tty: true ); using (connection) using (StreamWriter stdin = new StreamWriter(connection.GetOutputStream(0), Encoding.UTF8)) using (StreamReader stdout = new StreamReader(connection.GetInputStream(1), Encoding.UTF8)) { await stdin.WriteLineAsync("ls -l /"); await stdin.WriteLineAsync("exit"); // Read from STDOUT until process terminates. string line; while ((line = await stdout.ReadLineAsync()) != null) { Console.WriteLine(line); } } ``` For information about `HttpRequest`, `UriTemplate`, and other features used to implement the client take a look at [`KubeClient.Http`](./src/KubeClient.Http) and [`KubeClient.Http.Tests`](./test/KubeClient.Http.Tests). ### Working out what APIs to call If you want to replicate the behaviour of a `kubectl` command you can pass the flag `--v=10` to `kubectl` and it will dump out (for each request that it makes) the request URI, request body, and response body. ### Building You will need to use v9.0.100 (or newer) of the .NET SDK to build KubeClient. ## Migration from v2.x Note that KubeClient v3 introduces breaking changes, relative to v2.x: * KubeClient no longer supports `netstandard2.0`; it requires `net7.x` (or `netstandard2.1`). * `K8sWebSocket` (a custom implementation that was needed until .NET Core fully supported WebSockets) has been superseded by the (BCL-provided) [ClientWebSocket](https://learn.microsoft.com/en-us/dotnet/api/system.net.websockets.clientwebsocket?view=net-8.0). * [HTTPlease](https://tintoy.github.io/HTTPlease/), the underlying HTTP client library used by KubeClient, has been rolled into KubeClient. It is largely source-code-compatible, except that namespaces have changed from `HTTPlease.*` to `KubeClient.Http.*`. * Apart from these changes, existing consumer code that compiles against KubeClient v2.x assemblies should largely continue to compile, without modification, against KubeClient v3 assemblies. ## Questions / feedback Feel free to [get in touch](https://github.com/tintoy/dotnet-kube-client/issues/new) if you have questions, feedback, or would like to contribute. ================================================ FILE: README.md ================================================ # KubeClient [![Build Status](https://dev.azure.com/tintoy-dev/dotnet-kube-client/_apis/build/status%2Ftintoy.dotnet-kube-client?branchName=master)](https://dev.azure.com/tintoy-dev/dotnet-kube-client/_build/latest?definitionId=4&branchName=master) KubeClient is an extensible Kubernetes API client for .NET (targets `netstandard2.1`, `net7.0` `net8.0`, `net9.0`, and `net10.0`). > [!NOTE] > KubeClient v3.x introduces some breaking changes, relative to v2.x (see the [migration guide](#migration-from-v2x) below). There is also an [official](https://github.com/kubernetes-client/csharp/) .NET client for Kubernetes (both clients used to share code in a couple of places). These two clients are philosophically-different (from a design perspective) but either can be bent to fit your needs. For more information about how KubeClient differs from the official client, see the section below on [extensibility](#extensibility). ## Packages * `KubeClient` (`netstandard2.1` / `net7.0` or newer) The main client and models. [![KubeClient](https://img.shields.io/nuget/v/KubeClient.svg)](https://www.nuget.org/packages/KubeClient) * `KubeClient.Extensions.Configuration` (`net7.0` or newer) Support for sourcing `Microsoft.Extensions.Configuration` data from Kubernetes Secrets and ConfigMaps. [![KubeClient.Extensions.KubeConfig](https://img.shields.io/nuget/v/KubeClient.Extensions.Configuration.svg)](https://www.nuget.org/packages/KubeClient.Extensions.Configuration) * `KubeClient.Extensions.DependencyInjection` (`net7.0` or newer) Dependency-injection support. [![KubeClient.Extensions.KubeConfig](https://img.shields.io/nuget/v/KubeClient.Extensions.DependencyInjection.svg)](https://www.nuget.org/packages/KubeClient.Extensions.DependencyInjection) * `KubeClient.Extensions.KubeConfig` (`net7.0` or newer) Support for loading and parsing configuration from `~/.kube/config`. [![KubeClient.Extensions.KubeConfig](https://img.shields.io/nuget/v/KubeClient.Extensions.KubeConfig.svg)](https://www.nuget.org/packages/KubeClient.Extensions.KubeConfig) * `KubeClient.Extensions.WebSockets` (`net7.0` or newer) Support for multiplexed WebSocket connections used by Kubernetes APIs (such as [exec](src/KubeClient.Extensions.WebSockets/ResourceClientWebSocketExtensions.cs#L56)). This package also extends resource clients to add support for those APIs. If you want to use the latest (development) builds of KubeClient, add the following feed to `NuGet.config`: https://www.myget.org/F/dotnet-kube-client/api/v3/index.json ## Usage The client can be used directly or injected via `Microsoft.Extensions.DependencyInjection`. ### Use the client directly The simplest way to create a client is to call `KubeApiClient.Create()`. There are overloads if you want to provide an access token, client certificate, or customise validation of the server's certificate: ```csharp // Assumes you're using "kubectl proxy", and no authentication is required. KubeApiClient client = KubeApiClient.Create("http://localhost:8001"); PodListV1 pods = await client.PodsV1().List( labelSelector: "k8s-app=my-app" ); ``` For more flexible configuration, use the overload that takes `KubeClientOptions`: ```csharp KubeApiClient client = KubeApiClient.Create(new KubeClientOptions { ApiEndPoint = new Uri("http://localhost:8001"), AuthStrategy = KubeAuthStrategy.BearerToken, AccessToken = "my-access-token", AllowInsecure = true // Don't validate server certificate }); ``` You can enable logging of requests and responses by passing an `ILoggerFactory` to `KubeApiClient.Create()` or `KubeClientOptions.LoggerFactory`: ```csharp ILoggerFactory loggers = new LoggerFactory(); loggers.AddConsole(); KubeApiClient client = KubeApiClient.Create("http://localhost:8001", loggers); ``` ### Configure the client from ~/.kube/config ```csharp using KubeClient.Extensions.KubeConfig; KubeClientOptions clientOptions = K8sConfig.Load(kubeConfigFile).ToKubeClientOptions( kubeContextName: "my-cluster", defaultKubeNamespace: "kube-system" ); KubeApiClient client = KubeApiClient.Create(clientOptions); ``` ### Make the client available for dependency injection The client can be configured for dependency injection in a variety of ways. To use a fixed set of options for the client, use the overload of `AddKubeClient()` that takes `KubeClientoptions`: ```csharp void ConfigureServices(IServiceCollection services) { services.AddKubeClient(new KubeClientOptions { ApiEndPoint = new Uri("http://localhost:8001"), AuthStrategy = KubeAuthStrategy.BearerToken, AccessToken = "my-access-token", AllowInsecure = true // Don't validate server certificate }); } ``` To add a named instance of the client: ```csharp void ConfigureServices(IServiceCollection services) { services.AddNamedKubeClients(); services.AddKubeClientOptions("my-cluster", clientOptions => { clientOptions.ApiEndPoint = new Uri("http://localhost:8001"); clientOptions.AuthStrategy = KubeAuthStrategy.BearerToken; clientOptions.AccessToken = "my-access-token"; clientOptions.AllowInsecure = true; // Don't validate server certificate }); // OR: services.AddKubeClient("my-cluster", clientOptions => { clientOptions.ApiEndPoint = new Uri("http://localhost:8001"); clientOptions.AuthStrategy = KubeAuthStrategy.BearerToken; clientOptions.AccessToken = "my-access-token"; clientOptions.AllowInsecure = true; // Don't validate server certificate }); } // To use named instances of KubeApiClient, inject INamedKubeClients. class MyClass { public MyClass(INamedKubeClients namedKubeClients) { KubeClient1 = namedKubeClients.Get("my-cluster"); KubeClient2 = namedKubeClients.Get("another-cluster"); } IKubeApiClient KubeClient1 { get; } IKubeApiClient KubeClient2 { get; } } ``` ## Design philosophy Use of code generation is limited; generated clients tend to wind up being non-idiomatic and, for a Swagger spec as large as that of Kubernetes, wind up placing too many methods directly on the client class. KubeClient's approach is to generate model classes (see `src/swagger` for the Python script that does this) and hand-code the actual operation methods to provide an improved consumer experience (i.e. useful and consistent exception types). ### KubeResultV1 Some operations in the Kubernetes API can return a different response depending on the arguments passed in. For example, a request to delete a `v1/Pod` returns the existing `v1/Pod` (as a `PodV1` model) if the caller specifies `DeletePropagationPolicy.Foreground` but returns a `v1/Status` (as a `StatusV1` model) if any other type of `DeletePropagationPolicy` is specified. To handle this type of polymorphic response KubeClient uses the `KubeResultV1` model (and its derived implementations, `KubeResourceResultV1` and `KubeResourceListResultV1`). `KubeResourceResultV1` can be implicitly cast to a `TResource` or a `StatusV1`, so consuming code can continue to use the client as if it expects an operation to return only a resource or expects it to return only a `StatusV1`: ```csharp PodV1 existingPod = await client.PodsV1().Delete("mypod", propagationPolicy: DeletePropagationPolicy.Foreground); // OR: StatusV1 deleteStatus = await client.PodsV1().Delete("mypod", propagationPolicy: DeletePropagationPolicy.Background); ``` If an attempt is made to cast a `KubeResourceResultV1` that contains a non-success `StatusV1` to a `TResource`, a `KubeApiException` is thrown, based on the information in the `StatusV1`: ```csharp PodV1 existingPod; try { existingPod = await client.PodsV1().Delete("mypod", propagationPolicy: DeletePropagationPolicy.Foreground); } catch (KubeApiException kubeApiError) { Log.Error(kubeApiError, "Failed to delete Pod: {ErrorMessage}", kubeApiError.Status.Message); } ``` For more information about the behaviour of `KubeResultV1` and its derived implementations, see [KubeResultTests.cs](test/KubeClient.Tests/KubeResultTests.cs). ## Extensibility KubeClient is designed to be easily extensible. The `KubeApiClient` provides the top-level entry point for the Kubernetes API and extension methods are used to expose more specific resource clients. Simplified version of [PodClientV1.cs](src/KubeClient/ResourceClients/PodClientV1.cs): ```csharp public class PodClientV1 : KubeResourceClient { public PodClientV1(KubeApiClient client) : base(client) { } public async Task> List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { PodListV1 matchingPods = await Http.GetAsync( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async(); return matchingPods.Items; } public static class Requests { public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/pods?labelSelector={LabelSelector?}&watch={Watch?}"); } } ``` Simplified version of [ClientFactoryExtensions.cs](src/KubeClient/ClientFactoryExtensions.cs#L97): ```csharp public static PodClientV1 PodsV1(this KubeApiClient kubeClient) { return kubeClient.ResourceClient( client => new PodClientV1(client) ); } ``` This enables the following usage of `KubeApiClient`: ```csharp KubeApiClient client; PodListV1 pods = await client.PodsV1().List(kubeNamespace: "kube-system"); ``` Through the use of extension methods, resource clients (or additional operations) can be declared in any assembly and used as if they are part of the `KubeApiClient`. For example, the `KubeClient.Extensions.WebSockets` package adds an `ExecAndConnect` method to `PodClientV1`. Simplified version of [ResourceClientWebSocketExtensions.cs](src/KubeClient.Extensions.WebSockets/ResourceClientWebSocketExtensions.cs#L56): ```csharp public static async Task ExecAndConnect(this IPodClientV1 podClient, string podName, string command, bool stdin = false, bool stdout = true, bool stderr = false, bool tty = false, string container = null, string kubeNamespace = null, CancellationToken cancellation = default) { byte[] outputStreamIndexes = stdin ? new byte[1] { 0 } : new byte[0]; byte[] inputStreamIndexes; if (stdout && stderr) inputStreamIndexes = new byte[2] { 1, 2 }; else if (stdout) inputStreamIndexes = new byte[1] { 1 }; else if (stderr) inputStreamIndexes = new byte[1] { 2 }; else if (!stdin) throw new InvalidOperationException("Must specify at least one of STDIN, STDOUT, or STDERR."); else inputStreamIndexes = new byte[0]; return await podClient.KubeClient .ConnectWebSocket("api/v1/namespaces/{KubeNamespace}/pods/{PodName}/exec?stdin={StdIn?}&stdout={StdOut?}&stderr={StdErr?}&tty={TTY?}&command={Command}&container={Container?}", new { PodName = podName, Command = command, StdIn = stdin, StdOut = stdout, StdErr = stderr, TTY = tty, Container = container, KubeNamespace = kubeNamespace ?? podClient.KubeClient.DefaultNamespace }, cancellation) .Multiplexed(inputStreamIndexes, outputStreamIndexes, loggerFactory: podClient.KubeClient.LoggerFactory() ); } ``` Example usage of `ExecAndConnect`: ```csharp KubeApiClient client; K8sMultiplexer connection = await client.PodsV1().ExecAndConnect( podName: "my-pod", command: "/bin/bash", stdin: true, stdout: true, tty: true ); using (connection) using (StreamWriter stdin = new StreamWriter(connection.GetOutputStream(0), Encoding.UTF8)) using (StreamReader stdout = new StreamReader(connection.GetInputStream(1), Encoding.UTF8)) { await stdin.WriteLineAsync("ls -l /"); await stdin.WriteLineAsync("exit"); // Read from STDOUT until process terminates. string line; while ((line = await stdout.ReadLineAsync()) != null) { Console.WriteLine(line); } } ``` For information about `HttpRequest`, `UriTemplate`, and other features used to implement the client take a look at [`KubeClient.Http`](./src/KubeClient.Http) and [`KubeClient.Http.Tests`](./test/KubeClient.Http.Tests). ### Working out what APIs to call If you want to replicate the behaviour of a `kubectl` command you can pass the flag `--v=10` to `kubectl` and it will dump out (for each request that it makes) the request URI, request body, and response body. ### Building You will need to use `v9.0.100` (or newer) of the .NET SDK to build KubeClient. ## Migration from v2.x Note that KubeClient v3 introduces breaking changes, relative to v2.x: * KubeClient no longer supports `netstandard2.0`; it requires `net7.x` (or `netstandard2.1`). * `K8sWebSocket` (a custom implementation that was needed until .NET Core fully supported WebSockets) has been superseded by the (BCL-provided) [ClientWebSocket](https://learn.microsoft.com/en-us/dotnet/api/system.net.websockets.clientwebsocket?view=net-8.0). * [HTTPlease](https://tintoy.github.io/HTTPlease/), the underlying HTTP client library used by KubeClient, has been rolled into KubeClient. It is largely source-code-compatible, except that namespaces have changed from `HTTPlease.*` to `KubeClient.Http.*`. * Apart from these changes, existing consumer code that compiles against KubeClient v2.x assemblies should largely continue to compile, without modification, against KubeClient v3 assemblies. ## Questions / feedback Feel free to [get in touch](https://github.com/tintoy/dotnet-kube-client/issues/new) if you have questions, feedback, or would like to contribute. ================================================ FILE: azure-pipelines.yml ================================================ trigger: branches: include: - master - develop - feature/* - release/* tags: include: - 'v*' pr: branches: include: - master pool: vmImage: ubuntu-22.04 variables: buildConfiguration: 'Release' steps: # Needed for tests, since we're multi-targeting: - task: UseDotNet@2 displayName: Install .NET 7.0.x inputs: packageType: sdk # we shouldn't need the SDK (only the runtime), but this task is braindead and so tests will only find runtimes from SDK packages version: 7.0.x - task: UseDotNet@2 displayName: Install .NET 8.0.x runtime inputs: packageType: sdk # we shouldn't need the SDK (only the runtime), but this task is braindead and so tests will only find runtimes from SDK packages version: 8.0.x - task: UseDotNet@2 displayName: Install .NET 9.0.x runtime inputs: packageType: sdk # we shouldn't need the SDK (only the runtime), but this task is braindead and so tests will only find runtimes from SDK packages version: 9.0.x - task: UseDotNet@2 displayName: Install .NET 10.0.x runtime inputs: packageType: sdk # we shouldn't need the SDK (only the runtime), but this task is braindead and so tests will only find runtimes from SDK packages version: 10.0.x - task: UseDotNet@2 displayName: Configure .NET SDK from global.json inputs: packageType: sdk useGlobalJson: true - task: gitversion/setup@0 displayName: 'Install GitVersion' inputs: versionSpec: 5.x - task: GitVersion/execute@0 displayName: 'Determine build version' name: GitVersion - script: | BUILD_SEMVER="$(GitVersion.FullSemVer)" echo "##vso[task.setvariable variable=BUILD_SEMVER]$BUILD_SEMVER" echo "BUILD_SEMVER='$BUILD_SEMVER'" displayName: Set environment variables from build version - task: DotNetCoreCLI@2 displayName: 'Restore packages' inputs: command: 'restore' projects: '$(Build.SourcesDirectory)/KubeClient.sln' restoreArguments: '/p:VersionPrefix="$(GitVersion.MajorMinorPatch)" /p:VersionSuffix="$(GitVersion.PreReleaseTag)"' - task: DotNetCoreCLI@2 displayName: 'Build solution' inputs: command: 'build' projects: '$(Build.SourcesDirectory)/KubeClient.sln' arguments: '--configuration "$(buildConfiguration)" /p:VersionPrefix="$(GitVersion.MajorMinorPatch)" /p:VersionSuffix="$(GitVersion.PreReleaseTag)" --no-restore' - task: DotNetCoreCLI@2 displayName: 'Run tests' inputs: command: 'test' projects: '$(Build.SourcesDirectory)/test/KubeClient.*.Tests/*.csproj' arguments: '--configuration "$(buildConfiguration)" /p:VersionPrefix="$(GitVersion.MajorMinorPatch)" /p:VersionSuffix="$(GitVersion.PreReleaseTag)" --no-build' - task: DotNetCoreCLI@2 displayName: 'Create packages' inputs: command: 'pack' projects: '$(Build.SourcesDirectory)/src/**/*.csproj' arguments: '--configuration "$(buildConfiguration)"' outputDir: '$(Build.ArtifactStagingDirectory)/packages' versioningScheme: byEnvVar versionEnvVar: BUILD_SEMVER - task: PublishBuildArtifacts@1 displayName: 'Publish packages as artifact' inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/packages' ArtifactName: 'packages' publishLocation: 'Container' - task: NuGetCommand@2 displayName: 'Publish packages to MyGet package feed' inputs: command: 'push' packagesToPush: '$(Build.ArtifactStagingDirectory)/packages/*.nupkg;!$(Build.ArtifactStagingDirectory)/packages/*.symbols.nupkg' nuGetFeedType: 'external' publishFeedCredentials: 'myget-tintoy' - task: NuGetCommand@2 displayName: 'Publish packages to NuGet package feed' condition: contains(variables['Build.SourceBranch'], 'refs/tags/v') inputs: command: 'push' packagesToPush: '$(Build.ArtifactStagingDirectory)/packages/*.nupkg;!$(Build.ArtifactStagingDirectory)/packages/*.symbols.nupkg' nuGetFeedType: 'external' publishFeedCredentials: 'nuget-tintoy' - task: GitHubRelease@1 displayName: 'Create GitHub release from tag' condition: contains(variables['Build.SourceBranch'], 'refs/tags/v') inputs: gitHubConnection: 'tintoy' repositoryName: '$(Build.Repository.Name)' action: 'create' target: '$(Build.SourceVersion)' tagSource: 'gitTag' tagPattern: '^v\d+\.\d+.\d+(-[A-Za-z0-9%\.]+)?$' addChangeLog: true assets: '$(Build.ArtifactStagingDirectory)/packages/*.nupkg' assetUploadMode: replace ================================================ FILE: global.json ================================================ { "sdk": { "version": "10.0.100", "rollForward": "latestFeature" } } ================================================ FILE: samples/ConfigFromConfigMap/ConfigFromConfigMap.csproj ================================================  Exe net10.0 false latest ================================================ FILE: samples/ConfigFromConfigMap/Program.cs ================================================ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Primitives; using System; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Samples.ConfigFromConfigMap { using Extensions.Configuration; using Http; using Models; /// /// The ConfigFromConfigMap program. /// static class Program { /// /// The main program's logger. /// static ILogger Log { get; set; } /// /// The main program entry-point. /// /// /// The program's command-line arguments. /// /// /// The program exit-code. /// static async Task Main(string[] commandLineArguments) { ProgramOptions options = ProgramOptions.Parse(commandLineArguments); if (options == null) return ExitCodes.InvalidArguments; using ServiceProvider loggingServiceProvider = ConfigureLogging(options); ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); try { const string configMap1Name = "config-from-configmap-1"; const string configMap2Name = "config-from-configmap-2"; const string configMapNamespace = "default"; KubeClientOptions clientOptions = K8sConfig.Load().ToKubeClientOptions(defaultKubeNamespace: configMapNamespace, loggerFactory: loggerFactory); if (options.Verbose) clientOptions.LogPayloads = true; KubeApiClient client = KubeApiClient.Create(clientOptions); Log.LogInformation("Checking for existing ConfigMaps..."); ConfigMapV1 configMap1 = await client.ConfigMapsV1().Get(configMap1Name, configMapNamespace); if (configMap1 != null) { Log.LogInformation("Deleting existing ConfigMap {ConfigMapName}...", configMap1Name); await client.ConfigMapsV1().Delete(configMap1Name); Log.LogInformation("Deleted existing ConfigMap {ConfigMapName}.", configMap1Name); } ConfigMapV1 configMap2 = await client.ConfigMapsV1().Get(configMap2Name, configMapNamespace); if ( configMap2 != null ) { Log.LogInformation("Deleting existing ConfigMap {ConfigMapName}...", configMap2Name); await client.ConfigMapsV1().Delete(configMap2Name); Log.LogInformation("Deleted existing ConfigMap {ConfigMapName}.", configMap2Name); } Log.LogInformation("Creating ConfigMaps..."); Log.LogInformation("Creating ConfigMap {ConfigMapName}...", configMap1Name); configMap1 = await client.ConfigMapsV1().Create(new ConfigMapV1 { Metadata = new ObjectMetaV1 { Name = configMap1Name, Namespace = configMapNamespace }, Data = { ["Key1"] = "OneA", ["Key2"] = "TwoA", ["Key3"] = "ThreeA" } }); Log.LogInformation("Creating ConfigMap {ConfigMapName}...", configMap2Name); configMap2 = await client.ConfigMapsV1().Create(new ConfigMapV1 { Metadata = new ObjectMetaV1 { Name = configMap2Name, Namespace = configMapNamespace }, Data = { ["Key1"] = "OneB", ["Key2"] = "TwoB", ["Key4"] = "FourB" } }); Log.LogInformation("ConfigMaps created."); Log.LogInformation("Building configuration..."); IConfiguration configuration = new ConfigurationBuilder() .AddKubeConfigMap(clientOptions, configMapName: configMap1Name, reloadOnChange: true ) .AddKubeConfigMap(clientOptions, configMapName: configMap2Name, reloadOnChange: true ) .Build(); Log.LogInformation("Configuration built."); Log.LogInformation("Got configuration:"); Dump(configuration); Log.LogInformation("Press enter to update ConfigMaps {ConfigMap1Name} and {ConfigMap2Name}:", configMap1Name, configMap2Name); Console.ReadLine(); Log.LogInformation("Registering callback for change-notifications..."); ManualResetEvent configurationChanged = new ManualResetEvent(false); // See ConfigurationExtensions class below. IDisposable reloadNotifications = configuration.OnReload(() => { Log.LogInformation("Got changed configuration:"); Dump(configuration); configurationChanged.Set(); }); Log.LogInformation("Change-notification callback registered."); using (configurationChanged) using (reloadNotifications) { Log.LogInformation("Updating ConfigMap {ConfigMapName}...", configMap1Name); configMap1.Data["key5"] = "FiveA"; configMap1.Data["key6"] = "SixA"; // Replace the entire Data dictionary (to modify only some of the data, you'll need to use an untyped JsonPatchDocument). await client.ConfigMapsV1().Update(configMap1Name, patch => { patch.Replace(patchConfigMap => patchConfigMap.Data, value: configMap1.Data ); }); Log.LogInformation("Updated ConfigMap {ConfigMapName}.", configMap1Name); Log.LogInformation("Waiting for configuration change..."); configurationChanged.WaitOne(); Log.LogInformation("Configuration changed via ConfigMap {ConfigMapName}.", configMap1Name); configurationChanged.Reset(); Log.LogInformation("Updating ConfigMap {ConfigMapName}...", configMap2Name); configMap2.Data["key5"] = "FiveB"; configMap2.Data["key6"] = "SixB"; // Replace the entire Data dictionary (to modify only some of the data, you'll need to use an untyped JsonPatchDocument). await client.ConfigMapsV1().Update(configMap2Name, patch => { patch.Replace(patchConfigMap => patchConfigMap.Data, value: configMap2.Data ); }); Log.LogInformation("Updated ConfigMap {ConfigMapName}.", configMap2Name); configurationChanged.WaitOne(); Log.LogInformation("Configuration changed via ConfigMap {ConfigMapName}.", configMap2Name); } return ExitCodes.Success; } catch (HttpRequestException kubeError) { Log.LogError(kubeError, "Kubernetes API error: {@Status}", kubeError.Response); return ExitCodes.UnexpectedError; } catch (Exception unexpectedError) { Log.LogError(unexpectedError, "Unexpected error."); return ExitCodes.UnexpectedError; } } /// /// Dump configuration keys and values to the log. /// /// The . static void Dump(IConfiguration configuration) { if (configuration == null) throw new ArgumentNullException(nameof(configuration)); foreach ((string key, string value) in configuration.AsEnumerable().OrderBy(item => item.Key)) Log.LogInformation("\t'{Key}' = '{Value}'", key, value); } /// /// Configure application-level logging and populate . /// /// /// Program options. /// /// /// The global logging service provider. /// static ServiceProvider ConfigureLogging(ProgramOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); ServiceProvider loggingServiceProvider = new ServiceCollection() .AddLogging(logging => { logging.SetMinimumLevel( options.Verbose ? LogLevel.Trace : LogLevel.Information ); logging.AddConsole(); logging.AddDebug(); }) .BuildServiceProvider(new ServiceProviderOptions { ValidateOnBuild = true, ValidateScopes = true, }); try { ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); Log = loggerFactory.CreateLogger(typeof(Program)); return loggingServiceProvider; } catch (Exception) { // Clean up, on failure (if possible). using (loggingServiceProvider) { throw; } } } /// /// Global initialisation. /// static Program() { SynchronizationContext.SetSynchronizationContext( new SynchronizationContext() ); } /// /// Well-known program exit codes. /// public static class ExitCodes { /// /// Program completed successfully. /// public const int Success = 0; /// /// One or more command-line arguments were missing or invalid. /// public const int InvalidArguments = 1; /// /// An unexpected error occurred during program execution. /// public const int UnexpectedError = 5; } } /// /// Extension methods for working with . /// public static class ConfigurationExtensions { /// /// Register a callback for configuration reload notifications. /// /// /// The configuration. /// /// /// The delegate to invoke when the configuration is reloaded. /// /// /// An which, when disposed, terminates the notifications. /// public static IDisposable OnReload(this IConfiguration configuration, Action action) { if (configuration == null) throw new ArgumentNullException(nameof(configuration)); if (action == null) throw new ArgumentNullException(nameof(action)); // ChangeToken.OnChange takes care of requesting a new change token each time the callback is invoked. return ChangeToken.OnChange(configuration.GetReloadToken, action); } /// /// Register a callback for configuration reload notifications. /// /// The configuration. /// The delegate to invoke when the configuration is reloaded. /// An which, when disposed, terminates the notifications. public static IDisposable OnReload(this IConfiguration configuration, Action action) { if (configuration == null) throw new ArgumentNullException(nameof(configuration)); if (action == null) throw new ArgumentNullException(nameof(action)); // ChangeToken.OnChange takes care of requesting a new change token each time the callback is invoked. return ChangeToken.OnChange(configuration.GetReloadToken, action, configuration); } } } ================================================ FILE: samples/ConfigFromConfigMap/ProgramOptions.cs ================================================ using CommandLine; namespace KubeClient.Samples.ConfigFromConfigMap { /// /// Program options for ConfigFromConfigMap. /// class ProgramOptions { /// /// Enable verbose logging. /// [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging.")] public bool Verbose { get; set; } /// /// Parse program options from command-line arguments. /// /// /// The command-line arguments /// /// /// The parsed , or null if the command-line arguments could not be parsed. /// public static ProgramOptions Parse(string[] commandLineArguments) { ProgramOptions options = null; Parser.Default.ParseArguments(commandLineArguments) .WithParsed(parsedOptions => options = parsedOptions); return options; } } } ================================================ FILE: samples/DeploymentWithRollback/DeploymentWithRollback.csproj ================================================  Exe net10.0 false latest ================================================ FILE: samples/DeploymentWithRollback/Program.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Samples.DeploymentWithRollback { using Http; using Models; /// /// A sample program that demonstrates creating a K8s deployment, updating it, and then rolling back to an older version. /// static class Program { /// /// The main program's logger. /// static ILogger Log { get; set; } /// /// The main program entry-point. /// /// /// The program's command-line arguments. /// /// /// The program exit-code. /// static async Task Main(string[] commandLineArguments) { ProgramOptions options = ProgramOptions.Parse(commandLineArguments); if (options == null) return ExitCodes.InvalidArguments; using ServiceProvider loggingServiceProvider = ConfigureLogging(options); ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); try { KubeClientOptions clientOptions = K8sConfig.Load().ToKubeClientOptions(defaultKubeNamespace: options.KubeNamespace, loggerFactory: loggerFactory); if (options.Verbose) clientOptions.LogPayloads = true; KubeApiClient client = KubeApiClient.Create(clientOptions); Log.LogInformation("Looking for existing Deployment {DeploymentName} in namespace {KubeNamespace}...", options.DeploymentName, options.KubeNamespace ); DeploymentV1 existingDeployment = await client.DeploymentsV1().Get(options.DeploymentName, options.KubeNamespace); if (existingDeployment != null) { Log.LogError("Cannot continue - deployment {DeploymentName} in namespace {KubeNamespace} already exists.", options.DeploymentName, options.KubeNamespace ); return ExitCodes.AlreadyExists; } Log.LogInformation("Ok, Deployment does not exist yet - we're ready to go."); Log.LogInformation("Creating Deployment {DeploymentName} in namespace {KubeNamespace}...", options.DeploymentName, options.KubeNamespace ); DeploymentV1 initialDeployment = await CreateInitialDeployment(client, options.DeploymentName, options.KubeNamespace); int? initialRevision = initialDeployment.GetRevision(); if (initialRevision == null) { Log.LogError("Unable to determine initial revision of Deployment {DeploymentName} in namespace {KubeNamespace} (missing annotation).", options.DeploymentName, options.KubeNamespace ); return ExitCodes.UnexpectedError; } Log.LogInformation("Created Deployment {DeploymentName} in namespace {KubeNamespace} (revision {DeploymentRevision}).", options.DeploymentName, options.KubeNamespace, initialRevision ); Log.LogInformation("Updating Deployment {DeploymentName} in namespace {KubeNamespace}...", options.DeploymentName, options.KubeNamespace ); DeploymentV1 updatedDeployment = await UpdateDeployment(client, initialDeployment); int? updatedRevision = updatedDeployment.GetRevision(); if (updatedRevision == null) { Log.LogError("Unable to determine updated revision of Deployment {DeploymentName} in namespace {KubeNamespace} (missing annotation).", options.DeploymentName, options.KubeNamespace ); return ExitCodes.UnexpectedError; } Log.LogInformation("Updated Deployment {DeploymentName} in namespace {KubeNamespace} (revision {DeploymentRevision}).", options.DeploymentName, options.KubeNamespace, updatedRevision ); Log.LogInformation("Searching for ReplicaSet that corresponds to revision {Revision} of {DeploymentName} in namespace {KubeNamespace}...", options.DeploymentName, options.KubeNamespace, initialRevision ); ReplicaSetV1 targetReplicaSet = await FindReplicaSetForRevision(client, updatedDeployment, initialRevision.Value); if (targetReplicaSet == null) { Log.LogError("Cannot find ReplicaSet that corresponds to revision {Revision} of {DeploymentName} in namespace {KubeNamespace}...", options.DeploymentName, options.KubeNamespace, initialRevision ); return ExitCodes.NotFound; } Log.LogInformation("Found ReplicaSet {ReplicaSetName} in namespace {KubeNamespace}.", targetReplicaSet.Metadata.Name, targetReplicaSet.Metadata.Namespace ); Log.LogInformation("Rolling Deployment {DeploymentName} in namespace {KubeNamespace} back to initial revision {DeploymentRevision}...", options.DeploymentName, options.KubeNamespace, initialRevision ); DeploymentV1 rolledBackDeployment = await RollbackDeployment(client, updatedDeployment, targetReplicaSet); Log.LogInformation("Rollback initiated for Deployment {DeploymentName} in namespace {KubeNamespace} from revision {FromRevision} to {ToRevision} (new revision will be {NewRevision})...", options.DeploymentName, options.KubeNamespace, updatedRevision, initialRevision, rolledBackDeployment.GetRevision() ); return ExitCodes.Success; } catch (HttpRequestException kubeError) { Log.LogError(kubeError, "Kubernetes API error: {@Status}", kubeError.Response); return ExitCodes.UnexpectedError; } catch (Exception unexpectedError) { Log.LogError(unexpectedError, "Unexpected error."); return ExitCodes.UnexpectedError; } } /// /// Create the initial Deployment. /// /// /// The Kubernetes API client. /// /// /// The name of the Deployment to create. /// /// /// The name of the Kubernetes namespace in which the Deployment will be created. /// /// /// A representing the Deployment's current state. /// static async Task CreateInitialDeployment(IKubeApiClient client, string deploymentName, string deploymentNamespace) { if (client == null) throw new ArgumentNullException(nameof(client)); if (String.IsNullOrWhiteSpace(deploymentName)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'deploymentName'.", nameof(deploymentName)); if (String.IsNullOrWhiteSpace(deploymentNamespace)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'deploymentNamespace'.", nameof(deploymentNamespace)); DeploymentV1 initialDeployment = await client.DeploymentsV1().Create(new DeploymentV1 { Metadata = new ObjectMetaV1 { Name = deploymentName, Namespace = deploymentNamespace }, Spec = new DeploymentSpecV1 { Selector = new LabelSelectorV1 { MatchLabels = { ["app"] = deploymentName } }, Replicas = 2, RevisionHistoryLimit = 3, Template = new PodTemplateSpecV1 { Metadata = new ObjectMetaV1 { Labels = { ["app"] = deploymentName } }, Spec = new PodSpecV1 { Containers = { new ContainerV1 { Name = "demo-container", Image = "ubuntu:xenial", Command = { "/bin/sleep", "20m" } } } } } } }); // Re-fetch Deployment state so we pick up annotations added by the controller. initialDeployment = await client.DeploymentsV1().Get(initialDeployment.Metadata.Name, initialDeployment.Metadata.Namespace); return initialDeployment; } /// /// Update a Deployment, modifying its Command. /// /// /// The Kubernetes API client. /// /// /// A representing the Deployment to update. /// /// /// A representing the Deployment's current state. /// static async Task UpdateDeployment(IKubeApiClient client, DeploymentV1 existingDeployment) { if (client == null) throw new ArgumentNullException(nameof(client)); if (existingDeployment == null) throw new ArgumentNullException(nameof(existingDeployment)); DeploymentV1 updatedDeployment = await client.DeploymentsV1().Update(existingDeployment.Metadata.Name, kubeNamespace: existingDeployment.Metadata.Namespace, patchAction: patch => { patch.Replace( path: deployment => deployment.Spec.Template.Spec.Containers[0].Command, value: new List { "/bin/sleep", "30m" } ); }); // Re-fetch Deployment state so we pick up annotations added or updated by the controller. updatedDeployment = await client.DeploymentsV1().Get(updatedDeployment.Metadata.Name, updatedDeployment.Metadata.Namespace); return updatedDeployment; } /// /// Find the ReplicaSet that corresponds to the specified revision of the specified Deployment. /// /// /// The Kubernetes API client. /// /// /// The target Deployment. /// /// /// The target revision. /// /// /// A representing the ReplicaSet's current state; null, if no corresponding ReplicaSet was found. /// static async Task FindReplicaSetForRevision(IKubeApiClient client, DeploymentV1 deployment, int targetRevision) { if (client == null) throw new ArgumentNullException(nameof(client)); if (deployment == null) throw new ArgumentNullException(nameof(deployment)); ReplicaSetListV1 replicaSets = await client.ReplicaSetsV1().List( labelSelector: $"app={deployment.Metadata.Name}", kubeNamespace: deployment.Metadata.Namespace ); ReplicaSetV1 targetRevisionReplicaSet = replicaSets.Items.FirstOrDefault( replicaSet => replicaSet.GetRevision() == targetRevision ); return targetRevisionReplicaSet; } /// /// Roll back a Deployment to the revision represented by the specified ReplicaSet. /// /// /// The Kubernetes API client. /// /// /// The target Deployment. /// /// /// The ReplicaSet that represents the target revision. /// /// /// A representing the Deployment's current state. /// static async Task RollbackDeployment(IKubeApiClient client, DeploymentV1 existingDeployment, ReplicaSetV1 targetRevisionReplicaSet) { if (client == null) throw new ArgumentNullException(nameof(client)); if (existingDeployment == null) throw new ArgumentNullException(nameof(existingDeployment)); if (targetRevisionReplicaSet == null) throw new ArgumentNullException(nameof(targetRevisionReplicaSet)); if (!DoesDeploymentOwnReplicaSet(existingDeployment, targetRevisionReplicaSet)) throw new InvalidOperationException($"ReplicaSet '{targetRevisionReplicaSet.Metadata.Name}' in namespace '{targetRevisionReplicaSet.Metadata.Namespace}' is not owned by Deployment '{existingDeployment.Metadata.Name}'."); int? targetRevision = targetRevisionReplicaSet.GetRevision(); if (targetRevision == null) throw new InvalidOperationException($"Cannot determine Deployment revision represented by ReplicaSet '{targetRevisionReplicaSet.Metadata.Name}' in namespace '{targetRevisionReplicaSet.Metadata.Namespace}'."); DeploymentV1 rolledBackDeployment = await client.DeploymentsV1().Update(existingDeployment.Metadata.Name, kubeNamespace: existingDeployment.Metadata.Namespace, patchAction: patch => { patch.Replace(deployment => deployment.Spec.Template.Spec, value: targetRevisionReplicaSet.Spec.Template.Spec ); // Since the Rollback API is now obsolete, we have to update the Deployment's revision by hand. Dictionary annotationsWithModifiedRevision = existingDeployment.Metadata.Annotations; annotationsWithModifiedRevision[K8sAnnotations.Deployment.Revision] = targetRevision.Value.ToString(); patch.Replace(deployment => deployment.Metadata.Annotations, value: annotationsWithModifiedRevision ); }); // Re-fetch Deployment state so we pick up annotations added or updated by the controller. rolledBackDeployment = await client.DeploymentsV1().Get(rolledBackDeployment.Metadata.Name, rolledBackDeployment.Metadata.Namespace); return rolledBackDeployment; } /// /// Determine whether a Deployment owns a ReplicaSet. /// /// /// The Deployment to examine. /// /// /// The ReplicaSet to examine. /// /// /// true, if the ReplicaSet has an owner-reference to the Deployment; otherwise, false. /// static bool DoesDeploymentOwnReplicaSet(DeploymentV1 deployment, ReplicaSetV1 replicaSet) { if (deployment == null) throw new ArgumentNullException(nameof(deployment)); if (replicaSet == null) throw new ArgumentNullException(nameof(replicaSet)); // Sanity-check: does the target ReplicaSet actually represent a revision of the existing Deployment? bool isReplicaSetForDeployment = replicaSet.Metadata.OwnerReferences.Any(ownerReference => ownerReference.Kind == deployment.Kind && ownerReference.ApiVersion == deployment.ApiVersion && ownerReference.Name == deployment.Metadata.Name ); return isReplicaSetForDeployment; } /// /// Configure application-level logging and populate . /// /// /// Program options. /// /// /// The global logging service provider. /// static ServiceProvider ConfigureLogging(ProgramOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); ServiceProvider loggingServiceProvider = new ServiceCollection() .AddLogging(logging => { logging.SetMinimumLevel( options.Verbose ? LogLevel.Trace : LogLevel.Information ); logging.AddConsole(); logging.AddDebug(); }) .BuildServiceProvider(new ServiceProviderOptions { ValidateOnBuild = true, ValidateScopes = true, }); try { ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); Log = loggerFactory.CreateLogger(typeof(Program)); return loggingServiceProvider; } catch (Exception) { // Clean up, on failure (if possible). using (loggingServiceProvider) { throw; } } } /// /// Global initialisation. /// static Program() { SynchronizationContext.SetSynchronizationContext( new SynchronizationContext() ); } /// /// Well-known program exit codes. /// public static class ExitCodes { /// /// Program completed successfully. /// public const int Success = 0; /// /// One or more command-line arguments were missing or invalid. /// public const int InvalidArguments = 1; /// /// Resource not found. /// public const int NotFound = 2; /// /// Resource already exists. /// public const int AlreadyExists = 3; /// /// An unexpected error occurred during program execution. /// public const int UnexpectedError = 5; } } } ================================================ FILE: samples/DeploymentWithRollback/ProgramOptions.cs ================================================ using CommandLine; namespace KubeClient.Samples.DeploymentWithRollback { /// /// Program options for DeploymentWithRollback. /// class ProgramOptions { /// /// The name of the deployment to create. /// [Option('n', "name", Required = true, HelpText = "The name of the deployment to create")] public string DeploymentName { get; set; } /// /// The name of the namespace where the deployment will be created. /// [Option("namespace", Default = "default", HelpText = "The name of the namespace where the deployment will be created.")] public string KubeNamespace { get; set; } /// /// Enable verbose logging. /// [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging")] public bool Verbose { get; set; } /// /// Parse program options from command-line arguments. /// /// /// The command-line arguments /// /// /// The parsed , or null if the command-line arguments could not be parsed. /// public static ProgramOptions Parse(string[] commandLineArguments) { ProgramOptions options = null; Parser.Default.ParseArguments(commandLineArguments) .WithParsed(parsedOptions => options = parsedOptions); return options; } } } ================================================ FILE: samples/Directory.Build.props ================================================ latest false ================================================ FILE: samples/ExtensionsSample/ExtensionsSample.csproj ================================================ Exe net10.0 false ================================================ FILE: samples/ExtensionsSample/Program.cs ================================================ using System; using System.Linq; using KubeClient; using KubeClient.Extensions.Configuration; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; namespace ExtensionsSample { /// /// Make sure to run: kubectl apply -f ./thing-configmap.yaml to create the extensions-sample configMap before running this sample. You also need to be running kubectl proxy /// static class Program { static void Main() { var configBuilder = new ConfigurationBuilder(); using (var client = KubeApiClient.Create("http://localhost:8001")) { configBuilder.AddKubeConfigMap(client, "extensions-sample", reloadOnChange: true); var root = configBuilder.Build(); var thing = new Thing(); root.GetSection("Thing").Bind(thing); Console.WriteLine("Thing: {0}", JsonConvert.SerializeObject(thing, Formatting.Indented)); } } } class Thing { public string Environment { get; set; } public NestedThing Nested { get; set; } } class NestedThing { public string Name { get; set; } public string Other { get; set; } } } ================================================ FILE: samples/ExtensionsSample/thing-configmap.yaml ================================================ apiVersion: v1 kind: ConfigMap metadata: name: extensions-sample labels: name: extensions-sample data: thing.environment: 'kubed' thing.nested.Name: 'I''m nested' thing.Nested.other: 'what?' ================================================ FILE: samples/WatchEvents/Program.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Reactive.Linq; using System.Threading; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; namespace KubeClient.Samples.WatchEvents { using Http; using Models; using ResourceClients; /// /// A sample program that demonstrates creating how to watch events in a K8s namespace and resolve the resources defined in those events. /// static class Program { /// /// The main program's logger. /// static ILogger Log { get; set; } /// /// The main program entry-point. /// /// /// The program's command-line arguments. /// /// /// The program exit-code. /// static async Task Main(string[] commandLineArguments) { ProgramOptions options = ProgramOptions.Parse(commandLineArguments); if (options == null) return ExitCodes.InvalidArguments; using ServiceProvider loggingServiceProvider = ConfigureLogging(options); ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); try { KubeClientOptions clientOptions = K8sConfig.Load().ToKubeClientOptions(defaultKubeNamespace: options.KubeNamespace, loggerFactory: loggerFactory); if (options.Verbose) clientOptions.LogPayloads = true; JsonSerializerSettings serializerSettings = KubeResourceClient.SerializerSettings; serializerSettings.Formatting = Formatting.Indented; KubeApiClient client = KubeApiClient.Create(clientOptions); EventListV1 initialEvents = await client.EventsV1().List(); ActionBlock eventProcessor = CreateEventProcessor(client); Log.LogInformation("Initial events:"); Log.LogInformation("==============="); if (initialEvents.Items.Count > 0) { foreach (EventV1 initialEvent in initialEvents) eventProcessor.Post(initialEvent); } else Log.LogInformation("No initial events."); Log.LogInformation("==============="); IObservable> eventStream; if (initialEvents.Items.Count > 0) { EventV1 lastEvent = initialEvents.Items[initialEvents.Items.Count - 1]; eventStream = client.EventsV1().WatchAll(resourceVersion: lastEvent.InvolvedObject.ResourceVersion); } else eventStream = client.EventsV1().WatchAll(); IDisposable subscription = eventStream.Select(resourceEvent => resourceEvent.Resource).Subscribe( subsequentEvent => eventProcessor.Post(subsequentEvent), error => Log.LogError(error, "Unexpected error while streaming events.") ); using (subscription) { Log.LogInformation("Watching for new events (press enter to terminate)."); Console.ReadLine(); } Log.LogInformation("Waiting for event processor to shut down..."); eventProcessor.Complete(); await eventProcessor.Completion; Log.LogInformation("Event processor has shut down."); return ExitCodes.Success; } catch (HttpRequestException kubeError) { Log.LogError(kubeError, "Kubernetes API error: {@Status}", kubeError.Response); return ExitCodes.UnexpectedError; } catch (Exception unexpectedError) { Log.LogError(unexpectedError, "Unexpected error."); return ExitCodes.UnexpectedError; } } /// /// Create a TPL dataflow block to process events. /// /// The Kubernetes API client. /// The configured . static ActionBlock CreateEventProcessor(IKubeApiClient client) { if (client == null) throw new ArgumentNullException(nameof(client)); ActionBlock eventProcessor = new ActionBlock(async eventToProcess => { Log.LogInformation("Event: [{SourceComponent}] {EventReason:l} {EventMessage}", eventToProcess.Source?.Component, eventToProcess.Reason, eventToProcess.Message ); await ResolveRelatedResource(client, eventToProcess); }); eventProcessor.Completion.ContinueWith(faulted => { AggregateException flattened = faulted.Exception.Flatten(); if (flattened.InnerExceptions.Count == 1) Log.LogError(flattened.InnerExceptions[0], "Unexpected error while processing event."); else Log.LogError(flattened, "Unexpected error while processing event."); }, TaskContinuationOptions.OnlyOnFaulted); return eventProcessor; } /// /// Attempt to resolve the related resource for the specified event. /// /// The Kubernetes API client. /// The to process. /// A task representing the asynchronous operation. static async Task ResolveRelatedResource(IKubeApiClient client, EventV1 eventResource) { if (client == null) throw new ArgumentNullException(nameof(client)); if (eventResource == null) throw new ArgumentNullException(nameof(eventResource)); KubeResourceV1 involvedResource = await client.Dynamic().Get(eventResource.InvolvedObject); if (involvedResource != null) { Log.LogInformation("\tResolved related {ResourceModelName} resource for event {EventName} ({EventNamespace}).", involvedResource.GetType().Name, eventResource.Metadata.Name, eventResource.Metadata.Namespace ); } else { Log.LogInformation("\tFailed to resolve related resource for event {EventName} ({EventNamespace}).", eventResource.Metadata.Name, eventResource.Metadata.Namespace ); } } /// /// Configure application-level logging and populate . /// /// /// Program options. /// /// /// The global logging service provider. /// static ServiceProvider ConfigureLogging(ProgramOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); ServiceProvider loggingServiceProvider = new ServiceCollection() .AddLogging(logging => { logging.SetMinimumLevel( options.Verbose ? LogLevel.Trace : LogLevel.Information ); logging.AddConsole(); logging.AddDebug(); }) .BuildServiceProvider(new ServiceProviderOptions { ValidateOnBuild = true, ValidateScopes = true, }); try { ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); Log = loggerFactory.CreateLogger(typeof(Program)); return loggingServiceProvider; } catch (Exception) { // Clean up, on failure (if possible). using (loggingServiceProvider) { throw; } } } /// /// Global initialisation. /// static Program() { SynchronizationContext.SetSynchronizationContext( new SynchronizationContext() ); } /// /// Well-known program exit codes. /// public static class ExitCodes { /// /// Program completed successfully. /// public const int Success = 0; /// /// One or more command-line arguments were missing or invalid. /// public const int InvalidArguments = 1; /// /// Resource not found. /// public const int NotFound = 2; /// /// Resource already exists. /// public const int AlreadyExists = 3; /// /// An unexpected error occurred during program execution. /// public const int UnexpectedError = 5; } } } ================================================ FILE: samples/WatchEvents/ProgramOptions.cs ================================================ using CommandLine; namespace KubeClient.Samples.WatchEvents { /// /// Program options for WatchEvents. /// class ProgramOptions { /// /// The name of the namespace where the deployment will be created. /// [Option("namespace", Default = "default", HelpText = "The name of the namespace where the deployment will be created.")] public string KubeNamespace { get; set; } /// /// Enable verbose logging. /// [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging")] public bool Verbose { get; set; } /// /// Parse program options from command-line arguments. /// /// /// The command-line arguments /// /// /// The parsed , or null if the command-line arguments could not be parsed. /// public static ProgramOptions Parse(string[] commandLineArguments) { ProgramOptions options = null; Parser.Default.ParseArguments(commandLineArguments) .WithParsed(parsedOptions => options = parsedOptions); return options; } } } ================================================ FILE: samples/WatchEvents/WatchEvents.csproj ================================================  Exe net10.0 latest false ================================================ FILE: samples/noob-exec/NoobExec.csproj ================================================  Exe noob-exec net10.0 false latest ================================================ FILE: samples/noob-exec/Program.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.IO; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Samples.NoobExec { using Extensions.WebSockets; using Models; /// /// The NoobExec program. /// static class Program { /// /// The main program's logger. /// static ILogger Log { get; set; } /// /// The main program entry-point. /// /// /// The program's command-line arguments. /// /// /// The program exit-code. /// static async Task Main(string[] commandLineArguments) { // Show help if no arguments are specified. bool showHelp = commandLineArguments.Length == 0; if (showHelp) commandLineArguments = new[] { "--help" }; ProgramOptions options = ProgramOptions.Parse(commandLineArguments); if (options == null) return showHelp ? ExitCodes.Success : ExitCodes.InvalidArguments; using ServiceProvider loggingServiceProvider = ConfigureLogging(options); ILoggerFactory loggers = loggingServiceProvider.GetRequiredService(); try { KubeClientOptions clientOptions = K8sConfig.Load().ToKubeClientOptions( kubeContextName: options.KubeContext, defaultKubeNamespace: options.KubeNamespace, loggerFactory: loggers ); using (KubeApiClient client = KubeApiClient.Create(clientOptions)) { Log.LogInformation("Finding target pod..."); PodV1 targetPod = await client.PodsV1().Get(options.PodName, kubeNamespace: options.KubeNamespace ); if (targetPod == null) { Log.LogError("Pod '{PodName}' not found in namespace '{KubeNamespace}' on cluster ({KubeContextName}).", options.PodName, options.KubeNamespace, options.KubeContext ); return ExitCodes.NotFound; } if (!String.IsNullOrWhiteSpace(options.ContainerName)) { ContainerStatusV1 targetContainer = targetPod.Status.ContainerStatuses.Find( container => container.Name == options.ContainerName ); if (targetContainer == null) { Log.LogError("Container '{ContainerName}' not found in Pod '{PodName}' in namespace '{KubeNamespace}' on cluster ({KubeContextName}).", options.ContainerName, options.PodName, options.KubeNamespace, options.KubeContext ); return ExitCodes.NotFound; } } else if (targetPod.Status.ContainerStatuses.Count > 1) { Log.LogError("Pod '{PodName}' in namespace '{KubeNamespace}' on cluster ({KubeContextName}) has more than one container. Please specify the name of the target container", options.PodName, options.KubeNamespace, options.KubeContext ); return ExitCodes.InvalidArguments; } Log.LogDebug("Connecting..."); K8sMultiplexer multiplexer = await client.PodsV1().ExecAndConnect( podName: options.PodName, container: options.ContainerName, command: options.Command, kubeNamespace: options.KubeContext, stdin: true, stdout: true, stderr: true, tty: true // Required for interactivity ); Log.LogInformation("Connected."); Task stdInPump, stdOutPump, stdErrPump; using (multiplexer) using (CancellationTokenSource pumpCancellation = new CancellationTokenSource()) using (Stream localStdIn = Console.OpenStandardInput()) using (Stream remoteStdIn = multiplexer.GetStdIn()) using (Stream localStdOut = Console.OpenStandardOutput()) using (Stream remoteStdOut = multiplexer.GetStdOut()) using (Stream localStdErr = Console.OpenStandardError()) using (Stream remoteStdErr = multiplexer.GetStdErr()) { stdInPump = localStdIn.CopyToAsync(remoteStdIn, pumpCancellation.Token); stdOutPump = remoteStdOut.CopyToAsync(localStdOut, pumpCancellation.Token); stdErrPump = remoteStdErr.CopyToAsync(localStdErr, pumpCancellation.Token); await multiplexer.WhenConnectionClosed; // Terminate stream pumps. pumpCancellation.Cancel(); } Log.LogInformation("Connection closed."); Log.LogInformation("Done."); } return ExitCodes.Success; } catch (Exception unexpectedError) { Log.LogError(unexpectedError.ToString()); Log.LogError(unexpectedError, "Unexpected error."); return ExitCodes.UnexpectedError; } } /// /// Configure application-level logging and populate . /// /// /// Program options. /// /// /// The global logging service provider. /// static ServiceProvider ConfigureLogging(ProgramOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); ServiceProvider loggingServiceProvider = new ServiceCollection() .AddLogging(logging => { logging.SetMinimumLevel( options.Verbose ? LogLevel.Trace : LogLevel.Information ); logging.AddConsole(); logging.AddDebug(); }) .BuildServiceProvider(new ServiceProviderOptions { ValidateOnBuild = true, ValidateScopes = true, }); try { ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); Log = loggerFactory.CreateLogger(typeof(Program)); return loggingServiceProvider; } catch (Exception) { // Clean up, on failure (if possible). using (loggingServiceProvider) { throw; } } } /// /// Global initialisation. /// static Program() { SynchronizationContext.SetSynchronizationContext( new SynchronizationContext() ); } /// /// Well-known program exit codes. /// public static class ExitCodes { /// /// Program completed successfully. /// public const int Success = 0; /// /// One or more command-line arguments were missing or invalid. /// public const int InvalidArguments = 1; /// /// The target resource was not found. /// public const int NotFound = 10; /// /// An unexpected error occurred during program execution. /// public const int UnexpectedError = 50; } } } ================================================ FILE: samples/noob-exec/ProgramOptions.cs ================================================ using CommandLine; namespace KubeClient.Samples.NoobExec { /// /// Program options for NoobExec. /// class ProgramOptions { /// /// The name of the target pod. /// [Option('p', "pod", Required = true, HelpText = "The name of the target pod.")] public string PodName { get; set; } /// /// The command to execute. /// [Option('c', "command", Required = true, HelpText = "The command to execute.")] public string Command { get; set; } /// /// The name of the target container within the target pod. /// /// /// Optional, if the pod only has a single container. /// [Option("container", Default = null, HelpText = "The name of the target container within the target pod. Optional, if the pod only has a single container.")] public string ContainerName { get; set; } /// /// The Kubernetes namespace where the target pod is located. /// [Option('n', "namespace", Default = "default", HelpText = "The Kubernetes namespace where the target pod is located.")] public string KubeNamespace { get; set; } /// /// The name of the Kubernetes client configuration context to use. /// [Option('k', "kube-context", Default = null, HelpText = "The name of the Kubernetes client configuration context to use.")] public string KubeContext { get; set; } /// /// Enable verbose logging? /// [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging.")] public bool Verbose { get; set; } /// /// Parse program options from command-line arguments. /// /// /// The command-line arguments /// /// /// The parsed , or null if the command-line arguments could not be parsed. /// public static ProgramOptions Parse(string[] commandLineArguments) { ProgramOptions options = null; Parser.Default.ParseArguments(commandLineArguments) .WithParsed(parsedOptions => options = parsedOptions); return options; } } } ================================================ FILE: src/Common.props ================================================ latest true Package-README.md LICENSE https://github.com/tintoy/dotnet-kube-client/ Kubernetes;Client;kubectl git https://github.com/tintoy/dotnet-kube-client $(MSBuildThisFileDirectory)/../out/packages ================================================ FILE: src/KubeClient/ApiMetadata/ApiMetadataExtensions.cs ================================================ using KubeClient.Models; using System; using System.Linq; namespace KubeClient.ApiMetadata { /// /// Extension methods for working with Kubernetes API metadata. /// public static class ApiMetadataExtensions { /// /// Determine whether a Kubernetes API path supports the specified well-known action. /// /// /// The API path metadata. /// /// /// A representing the target action. /// /// /// true, if the path supports the specified action; otherwise, false. /// public static bool SupportsAction(this KubeApiPathMetadata apiPathMetadata, KubeAction action) { if (apiPathMetadata == null) throw new ArgumentNullException(nameof(apiPathMetadata)); string verb = action.ToString().ToLower(); return apiPathMetadata.Verbs.Contains(verb); } } } ================================================ FILE: src/KubeClient/ApiMetadata/KubeApiMetadata.cs ================================================ using System; using System.Collections.Generic; using System.Linq; namespace KubeClient.ApiMetadata { /// /// Metadata for a Kubernetes resource API. /// public class KubeApiMetadata { /// /// Create new Kubernetes resource API metadata. /// /// /// The resource kind. /// /// /// The resource API group. /// /// /// The resource API version. /// /// /// The singular name (if any) for the resource (e.g. "NetworkPolicy"). /// /// /// The plural name (if any) for the resource (e.g. "NetworkPolicies"). /// /// /// Short names (if any) for the resource. /// /// /// Is this the currently-preferred version of the API? /// /// /// The metadata for the API's paths. /// /// At least 1 path must be supplied. /// public KubeApiMetadata(string kind, string apiGroup, string apiVersion, string singularName, string pluralName, IReadOnlyCollection shortNames, bool isPreferredVersion, IReadOnlyList paths) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); if (String.IsNullOrWhiteSpace(singularName)) singularName = null; if (String.IsNullOrWhiteSpace(pluralName)) pluralName = null; if (shortNames == null) throw new ArgumentNullException(nameof(shortNames)); if (paths == null) throw new ArgumentNullException(nameof(paths)); if (paths.Count == 0) throw new ArgumentException("Metadata for a Kubernetes resource API must have at least one path.", nameof(paths)); Kind = kind; ApiGroup = apiGroup; ApiVersion = apiVersion; SingularName = singularName; PluralName = pluralName; ShortNames = shortNames; IsPreferredVersion = isPreferredVersion; PathMetadata = paths; } /// /// The resource kind. /// public string Kind { get; } /// /// The resource API group. /// public string ApiGroup { get; } /// /// The resource API version. /// public string ApiVersion { get; } /// /// The singular name (if any) for the resource (e.g. "NetworkPolicy"). /// public string SingularName { get; } /// /// The plural name (if any) for the resource (e.g. "NetworkPolicies"). /// public string PluralName { get; } /// /// Short names (if any) for the resource. /// public IReadOnlyCollection ShortNames { get; } /// /// Is this the currently-preferred version of the API? /// public bool IsPreferredVersion { get; } /// /// The metadata for the API's primary (non-namespaced) path. /// public string PrimaryPath => PrimaryPathMetadata?.Path; /// /// The metadata for the API's primary namespaced path. /// public string PrimaryNamespacedPath => PrimaryNamespacedPathMetadata?.Path; /// /// The metadata for the API's primary (non-namespaced) path. /// public KubeApiPathMetadata PrimaryPathMetadata => PathMetadata.FirstOrDefault(path => !path.IsNamespaced); /// /// The metadata for the API's primary namespaced path. /// public KubeApiPathMetadata PrimaryNamespacedPathMetadata => PathMetadata.FirstOrDefault(path => path.IsNamespaced); /// /// The metadata for the API's path(s). /// public IReadOnlyList PathMetadata { get; } } } ================================================ FILE: src/KubeClient/ApiMetadata/KubeApiMetadataCache.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ApiMetadata { using Models; /// /// A cache for Kubernetes resource API metadata. /// public sealed class KubeApiMetadataCache { /// /// Well-known group prefixes. /// public static readonly IReadOnlyCollection ApiGroupPrefixes = new string[] { "api", "apis" }; /// /// An object used to synchronise access to cache state. /// readonly object _stateLock = new object(); /// /// Model metadata, keyed by apiVersion/Kind, singular name, and short names. /// readonly Dictionary _metadata = new Dictionary(); /// /// Create a new Kubernetes resource metadata cache. /// public KubeApiMetadataCache() { } /// /// Is the cache currently empty? /// public bool IsEmpty { get { lock (_stateLock) { return _metadata.Count == 0; } } } /// /// Retrieve metadata for a Kubernetes resource API. /// /// /// The type of model that represents the resource. /// /// /// The API metadata, or null if no metadata was found for the API. /// public KubeApiMetadata Get() where TModel : KubeObjectV1 { return Get( typeof(TModel) ); } /// /// Retrieve metadata for a Kubernetes resource API. /// /// /// The CLR of the model that represents the resource. /// /// /// The API metadata, or null if no metadata was found for the API. /// public KubeApiMetadata Get(Type modelType) { if (modelType == null) throw new ArgumentNullException(nameof(modelType)); (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(modelType); if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException($"Model type {modelType.FullName} has not been decorated with KubeResourceAttribute or KubeResourceListAttribute.", nameof(modelType)); return Get(kind, apiVersion); } /// /// Retrieve metadata for a Kubernetes resource API. /// /// /// The resource singular-name or short-name. /// /// /// The API metadata, or null if no metadata was found for the API. /// public KubeApiMetadata Get(string name) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (_metadata.TryGetValue(name, out KubeApiMetadata apiMetadata)) return apiMetadata; return null; } /// /// Retrieve metadata for a Kubernetes resource API. /// /// /// The resource kind. /// /// /// The resource API group name. /// /// /// The resource API version. /// /// /// The API metadata, or null if no metadata was found for the API. /// public KubeApiMetadata Get(string kind, string apiGroup, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); lock (_stateLock) { string cacheKey = CreateCacheKey(kind, apiGroup, apiVersion); if (_metadata.TryGetValue(cacheKey, out KubeApiMetadata metadata)) return metadata; } return null; } /// /// Retrieve metadata for a Kubernetes resource API. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The API metadata, or null if no metadata was found for the API. /// public KubeApiMetadata Get(string kind, string apiVersion) => Get(kind, apiGroup: null, apiVersion); /// /// Retrieve the primary path of a Kubernetes resource API. /// /// /// The type of model that represents the resource. /// /// /// The API's primary (i.e. first) path, or null if no metadata was found for the API. /// public string GetPrimaryPath() where TModel : KubeObjectV1 { return GetPrimaryPath( typeof(TModel) ); } /// /// Retrieve the primary path of a Kubernetes resource API. /// /// /// The CLR of the model that represents the resource. /// /// /// The API's primary (i.e. first) path, or null if no metadata was found for the API. /// public string GetPrimaryPath(Type modelType) { if (modelType == null) throw new ArgumentNullException(nameof(modelType)); (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(modelType); if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException($"Model type {modelType.FullName} has not been decorated with KubeResourceAttribute or KubeResourceListAttribute.", nameof(modelType)); return GetPrimaryPath(kind, apiVersion); } /// /// Retrieve the primary path of a Kubernetes resource API. /// /// /// The resource singular-name or short-name. /// /// /// The API metadata, or null if no metadata was found for the API. /// public string GetPrimaryPath(string name) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return Get(name)?.PrimaryPath; } /// /// Retrieve the primary path of a Kubernetes resource API. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The API's primary (i.e. first) path, or null if no metadata was found for the API. /// public string GetPrimaryPath(string kind, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); lock (_stateLock) { KubeApiMetadata metadata = Get(kind, apiVersion); if (metadata == null) throw new KeyNotFoundException($"No API metadata found for '{kind}/{apiVersion}'"); return metadata.PrimaryPath; } } /// /// Clear the cache. /// public void Clear() { lock (_stateLock) { _metadata.Clear(); } } /// /// Populate the cache from model metadata. /// /// /// The assembly containing model types to process. /// /// /// Remove existing metadata from the cache? /// public void LoadFromMetadata(Assembly assembly, bool clearExisting = false) { if (assembly == null) throw new ArgumentNullException(nameof(assembly)); Dictionary<(string kind, string apiVersion), Type> modelMetadata = ModelMetadata.KubeObject.BuildKindToTypeLookup(assembly); var loadedMetadata = new List(); foreach (var kindAndApiVersion in modelMetadata.Keys) { string kind = kindAndApiVersion.kind; string[] apiGroupVersion = kindAndApiVersion.apiVersion.Split('/', count: 2); string apiGroup = apiGroupVersion.Length == 2 ? apiGroupVersion[0] : null; string apiVersion = apiGroupVersion.Length == 2 ? apiGroupVersion[1] : apiGroupVersion[0]; Type modelType = modelMetadata[kindAndApiVersion]; // TODO: Add SingularName and ShortNames to model metadata (as custom attributes), but where do we get them from? They appear to only be available at runtime (via the API). Dictionary> pathActions = new Dictionary>(); KubeApiAttribute[] apiAttributes = modelType.GetTypeInfo().GetCustomAttributes().ToArray(); foreach (KubeApiAttribute apiAttribute in apiAttributes) { foreach (string path in apiAttribute.Paths) { List actions; if (!pathActions.TryGetValue(path, out actions)) { actions = new List(); pathActions.Add(path, actions); } actions.Add(apiAttribute.Action); } } var apiPaths = new List(); foreach (string path in pathActions.Keys.OrderBy(path => path)) { bool isNamespaced = path.Contains("namespace"); List actions = pathActions[path]; actions.Sort(); string[] verbs = new string[actions.Count]; for (int actionIndex = 0; actionIndex < actions.Count; actionIndex++) verbs[actionIndex] = actions[actionIndex].ToString().ToLower(); apiPaths.Add( new KubeApiPathMetadata(path, isNamespaced, verbs) ); } if (apiPaths.Count == 0) continue; loadedMetadata.Add(new KubeApiMetadata( kind, apiGroup, apiVersion, singularName: null, pluralName: null, shortNames: new string[0], isPreferredVersion: true, paths: apiPaths )); } Cache(loadedMetadata, clearExisting); } /// /// Populate the cache from the Kubernetes API. /// /// /// The used to retrieve API metadata. /// /// /// Remove existing metadata from the cache? /// /// /// An optional that can be used to cancel the operation. /// /// /// A representing the asynchronous operation. /// public async Task Load(IKubeApiClient kubeClient, bool clearExisting = false, CancellationToken cancellationToken = default) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); var loadedMetadata = new List(); foreach (string apiGroupPrefix in ApiGroupPrefixes) { APIGroupListV1 apiGroups = await kubeClient.APIGroupsV1().List(apiGroupPrefix, cancellationToken); if (apiGroupPrefix == "api") { // Special case for old-style ("api/v1") APIs. apiGroups.Groups.Add(new APIGroupV1 { Name = "Core", PreferredVersion = new GroupVersionForDiscoveryV1 { GroupVersion = "v1" } }); } foreach (APIGroupV1 apiGroup in apiGroups.Groups) { List groupVersions; if (apiGroupPrefix == "api") { groupVersions = new List { new GroupVersionForDiscoveryV1 { GroupVersion = "v1" } }; } else groupVersions = apiGroup.Versions; var metadataLoaders = new List>>(); foreach (GroupVersionForDiscoveryV1 groupVersion in groupVersions) { metadataLoaders.Add( LoadGroupApis(kubeClient, apiGroupPrefix, apiGroup, groupVersion, cancellationToken) ); } List[] completedLoads = await Task.WhenAll(metadataLoaders); foreach (List completedLoad in completedLoads) loadedMetadata.AddRange(completedLoad); } } cancellationToken.ThrowIfCancellationRequested(); Cache(loadedMetadata, clearExisting); } /// /// Load metadata for the specified group of resource APIs. /// /// /// The Kubernetes API client used to load API metadata. /// /// /// The API group prefix (usually "api" or "apis"). /// /// /// The API group. /// /// /// The current API group version to examine. /// /// /// A that can be used to cancel the operation. /// /// /// A list of representing the group's APIs. /// async Task> LoadGroupApis(IKubeApiClient kubeClient, string apiGroupPrefix, APIGroupV1 apiGroup, GroupVersionForDiscoveryV1 groupVersion, CancellationToken cancellationToken) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); if (String.IsNullOrWhiteSpace(apiGroupPrefix)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiGroupPrefix'.", nameof(apiGroupPrefix)); if (apiGroup == null) throw new ArgumentNullException(nameof(apiGroup)); if (groupVersion == null) throw new ArgumentNullException(nameof(groupVersion)); var apiMetadata = new List(); APIResourceListV1 apis = await kubeClient.APIResourcesV1().List(apiGroupPrefix, groupVersion.GroupVersion, cancellationToken); foreach (var apisForKind in apis.Resources.GroupBy(api => api.Kind)) { string kind = apisForKind.Key; string pluralName = null; string singularName = null; IReadOnlyCollection shortNames = new string[0]; var apiPaths = new List(); bool isPreferredVersion = (groupVersion.GroupVersion == apiGroup.PreferredVersion.GroupVersion); foreach (APIResourceV1 api in apisForKind) { // TODO: Parse and examine verbs to improve path resolution. string apiPath = $"{apiGroupPrefix}/{groupVersion.GroupVersion}/{api.Name}"; apiPaths.Add( new KubeApiPathMetadata(apiPath, isNamespaced: false, verbs: api.Verbs.ToArray() ) ); if (api.Namespaced) { string namespacedApiPath = $"{apiGroupPrefix}/{groupVersion.GroupVersion}/namespaces/{{namespace}}/{api.Name}"; apiPaths.Add( new KubeApiPathMetadata(namespacedApiPath, isNamespaced: true, verbs: api.Verbs.ToArray() ) ); } // Only use aliases from preferred API version. if (isPreferredVersion) { if (pluralName == null) pluralName = api.Name; if (singularName == null) singularName = api.SingularName; if (shortNames.Count == 0) shortNames = api.ShortNames.ToArray(); } } apiMetadata.Add( new KubeApiMetadata(kind, apiGroup.Name, groupVersion.Version ?? groupVersion.GroupVersion.Split('/')[0], singularName, pluralName, shortNames, isPreferredVersion, apiPaths) ); } return apiMetadata; } /// /// Retrieve all keys for which the cache contains metadata. /// /// /// An array of strings representing the cache keys. /// public string[] GetCacheKeys() { lock (_stateLock) { return _metadata.Keys.ToArray(); } } /// /// Retrieve all resource kinds for which the cache contains metadata. /// /// /// An array of (kind, apiVersion) tuples. /// public (string kind, string apiVersion)[] GetKnownResourceKinds() { lock (_stateLock) { return _metadata.Keys .Where( key => key.IndexOf('/') != -1 ) .Select( key => key.Split('/') ) .Select( keyParts => (kind: keyParts[0], apiVersion: keyParts[1]) ) .ToArray(); } } /// /// Populate the cache using the specified metadata. /// /// /// API metadata to be added to the cache. /// /// /// Remove existing metadata from the cache? /// void Cache(IEnumerable loadedMetadata, bool clearExisting) { if (loadedMetadata == null) throw new ArgumentNullException(nameof(loadedMetadata)); lock (_stateLock) { if (clearExisting) Clear(); foreach (KubeApiMetadata apiMetadata in loadedMetadata) { string cacheKey = CreateCacheKey(apiMetadata.Kind, apiMetadata.ApiGroup, apiMetadata.ApiVersion); _metadata[cacheKey] = apiMetadata; // Special-case: pluralise the resource kind. string suffix = String.Empty; if (apiMetadata.Kind.EndsWith("y")) suffix = "ies"; else if (!apiMetadata.Kind.EndsWith("s")) suffix = "s"; cacheKey = $"{apiMetadata.Kind}{suffix}"; if (!_metadata.ContainsKey(cacheKey)) _metadata.Add(cacheKey, apiMetadata); // Only cache aliases from preferred API version. if (apiMetadata.IsPreferredVersion) { if (apiMetadata.SingularName != null) _metadata[apiMetadata.SingularName] = apiMetadata; if (apiMetadata.SingularName != null) _metadata[apiMetadata.SingularName] = apiMetadata; foreach (string shortName in apiMetadata.ShortNames) _metadata[shortName] = apiMetadata; } } } } /// /// Create a cache key based on the specified resource kind and API group / version. /// /// /// The Kubernetes resource kind (e.g. "KafkaConnector"). /// /// /// The Kubernetes resource API group (e.g. "strimzi.kafka.io"). /// /// /// The Kubernetes resource API version (e.g. "v1beta2"). /// /// /// The cache key. /// static string CreateCacheKey(string kind, string apiGroup, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); if (!String.IsNullOrWhiteSpace(apiGroup)) return $"{apiGroup}/{apiVersion}/{kind}"; return $"{apiVersion}/{kind}"; } } } ================================================ FILE: src/KubeClient/ApiMetadata/KubeApiPathMetadata.cs ================================================ using System; using System.Collections.Generic; namespace KubeClient.ApiMetadata { /// /// Metadata for a specific path in a Kubernetes resource API. /// public class KubeApiPathMetadata { /// /// Create new Kubernetes resource API path metadata. /// /// /// The API path. /// /// /// Is the path namespaced? /// /// /// The verbs supported on the path. /// public KubeApiPathMetadata(string path, bool isNamespaced, IReadOnlyCollection verbs) { if (String.IsNullOrWhiteSpace(path)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'path'.", nameof(path)); if (verbs == null) throw new ArgumentNullException(nameof(verbs)); Path = path; Verbs = verbs; IsNamespaced = isNamespaced; } /// /// The API path. /// public string Path { get; } /// /// Is the path namespaced? /// public bool IsNamespaced { get; } /// /// The verbs supported on the path. /// public IReadOnlyCollection Verbs { get; } } } ================================================ FILE: src/KubeClient/ApiMetadata/KubeApiVerb.cs ================================================ namespace KubeClient.ApiMetadata { /// /// Well-known verbs supported by Kubernetes resource APIs. /// public static class KubeApiVerb { /// /// Create a resource. /// public const string Create = "create"; /// /// Delete a resource. /// public const string Delete = "delete"; /// /// Delete a collection of resources. /// public const string DeleteCollection = "deletecollection"; /// /// Retrieve a single resource. /// public const string Get = "get"; /// /// List resources. /// public const string List = "list"; /// /// Patch (selectively update) a resource. /// public const string Patch = "patch"; /// /// Update (replace) a resource. /// public const string Update = "update"; /// /// Watch a resource or resource collection for changes. /// public const string Watch = "watch"; } } ================================================ FILE: src/KubeClient/AssemblyVisibility.cs ================================================ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("KubeClient.Tests")] [assembly: InternalsVisibleTo("KubeClient.Extensions.DataProtection.Tests")] ================================================ FILE: src/KubeClient/ClientFactoryExtensions.cs ================================================ using System; namespace KubeClient { using ResourceClients; /// /// Extension methods for creating Kubernetes resource clients for a . /// public static class ClientFactoryExtensions { /// /// Get the Kubernetes Namespaces (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static INamespaceClientV1 NamespacesV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new NamespaceClientV1(client) ); } /// /// Get the Kubernetes ConfigMaps (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IConfigMapClientV1 ConfigMapsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new ConfigMapClientV1(client) ); } /// /// Get the Kubernetes DaemonSets (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IDaemonSetClientV1 DaemonSetsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new DaemonSetClientV1(client) ); } /// /// Get the Kubernetes Deployments (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IDeploymentClientV1 DeploymentsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new DeploymentClientV1(client) ); } /// /// Get the Kubernetes Deployments (v1beta1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IDeploymentClientV1Beta1 DeploymentsV1Beta1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new DeploymentClientV1Beta1(client) ); } /// /// Get the Kubernetes Jobs (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IJobClientV1 JobsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new JobClientV1(client) ); } /// /// Get the Kubernetes Nodes (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static INodeClientV1 NodesV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new NodeClientV1(client) ); } /// /// Get the Kubernetes Events (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IEventClientV1 EventsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new EventClientV1(client) ); } /// /// Get the Kubernetes Ingresses (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IIngressClientV1Beta1 IngressesV1Beta1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new IngressClientV1Beta1(client) ); } /// /// Get the Kubernetes PersistentVolumes (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IPersistentVolumeClientV1 PersistentVolumesV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new PersistentVolumeClientV1(client) ); } /// /// Get the Kubernetes PersistentVolumeClaims (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IPersistentVolumeClaimClientV1 PersistentVolumeClaimsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new PersistentVolumeClaimClientV1(client) ); } /// /// Get the Kubernetes Pods (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IPodClientV1 PodsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new PodClientV1(client) ); } /// /// Get the Kubernetes Roles (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IRoleClientV1 RolesV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new RoleClientV1(client) ); } /// /// Get the Kubernetes Role Bindings (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IRoleBindingClientV1 RoleBindingsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new RoleBindingClientV1(client) ); } /// /// Get the Kubernetes Secrets (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static ISecretClientV1 SecretsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new SecretClientV1(client) ); } /// /// Get the Kubernetes Service Accounts (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IServiceAccountClientV1 ServiceAccountsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new ServiceAccountClientV1(client) ); } /// /// Get the Kubernetes Services (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IServiceClientV1 ServicesV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new ServiceClientV1(client) ); } /// /// Get the Kubernetes ReplicationControllers (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IReplicationControllerClientV1 ReplicationControllersV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new ReplicationControllerClientV1(client) ); } /// /// Get the Kubernetes ReplicaSets (v1beta1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IReplicaSetClientV1 ReplicaSetsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new ReplicaSetClientV1(client) ); } /// /// Get the Kubernetes APIGroups (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IAPIGroupClientV1 APIGroupsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new APIGroupClientV1(client) ); } /// /// Get the Kubernetes APIResources (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IAPIResourceClientV1 APIResourcesV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new APIResourceClientV1(client) ); } /// /// Get the Kubernetes NetworkPolicy (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static INetworkPolicyClientV1 NetworkPolicyV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new NetworkPolicyClientV1(client) ); } /// /// Get the Kubernetes StatefulSets (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IStatefulSetClientV1 StatefulSetV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new StatefulSetClientV1(client) ); } /// /// Get a client for dynamic access to Kubernetes resource APIs. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static IDynamicResourceClient Dynamic(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new DynamicResourceClient(client) ); } } } ================================================ FILE: src/KubeClient/KubeApiClient.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Collections.Concurrent; using System.Net.Http; using System.Security.Cryptography.X509Certificates; namespace KubeClient { using Http.Clients; using ResourceClients; /// /// Client for the Kubernetes API. /// public sealed class KubeApiClient : IKubeApiClient, IDisposable { /// /// The default factory for s used by s. /// static readonly ClientBuilder HttpClientBuilder = new ClientBuilder(); /// /// The default factory for s used by s when using dependency injection. /// static readonly ClientBuilder DependencyInjectionHttpClientBuilder = new ClientBuilder(); /// /// Kubernetes resource clients. /// readonly ConcurrentDictionary _clients = new ConcurrentDictionary(); /// /// Create a new . /// /// /// The underlying HTTP client. /// /// /// The used to configure the . /// KubeApiClient(HttpClient httpClient, KubeClientOptions options) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); Http = httpClient; Options = options.Clone(); LoggerFactory = options.LoggerFactory; DefaultNamespace = options.KubeNamespace; } /// /// Dispose of resources being used by the . /// public void Dispose() => Http.Dispose(); /// /// The base address of the Kubernetes API end-point targeted by the client. /// public Uri ApiEndPoint => Options.ApiEndPoint; /// /// The default Kubernetes namespace. /// public string DefaultNamespace { get; set; } /// /// The underlying HTTP client. /// public HttpClient Http { get; } /// /// The used to create loggers for client components. /// public ILoggerFactory LoggerFactory { get; } /// /// The used to configure the . /// KubeClientOptions Options { get; } /// /// Get a copy of the used to configure the client. /// /// /// The . /// public KubeClientOptions GetClientOptions() => Options.Clone(); /// /// Get or create a Kubernetes resource client of the specified type. /// /// /// The type of Kubernetes resource client to get or create. /// /// /// A delegate that creates the resource client. /// /// /// The resource client. /// public TClient ResourceClient(Func clientFactory) where TClient : IKubeResourceClient { if (clientFactory == null) throw new ArgumentNullException(nameof(clientFactory)); return (TClient)_clients.GetOrAdd(typeof(TClient), clientType => { TClient resourceClient = clientFactory(this); if (resourceClient == null) throw new InvalidOperationException($"Factory for Kubernetes resource client of type '{clientType.FullName}' returned null."); return (IKubeResourceClient)resourceClient; }); } /// /// Create and configure a using the specified options. /// /// /// The used to configure the client. /// /// /// The configured . /// public static KubeApiClient Create(KubeClientOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); options.EnsureValid(); HttpClient httpClient; if (options.ServiceProvider != null) { // TODO: services.Configure((serviceProvider, options) => options.ServiceProvider = serviceProvider); httpClient = options.Configure(DependencyInjectionHttpClientBuilder).CreateClient(options.ServiceProvider, options.ApiEndPoint); } else httpClient = options.Configure(HttpClientBuilder).CreateClient(options.ApiEndPoint); return new KubeApiClient(httpClient, options); } /// /// Create a new without authentication. /// /// /// The base address for the Kubernetes API end-point. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// public static KubeApiClient Create(string apiEndPoint, ILoggerFactory loggerFactory = null) { return Create(new Uri(apiEndPoint), loggerFactory); } /// /// Create a new without authentication. /// /// /// The base address for the Kubernetes API end-point. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// public static KubeApiClient Create(Uri apiEndPoint, ILoggerFactory loggerFactory = null) { return Create(new KubeClientOptions { ApiEndPoint = apiEndPoint, LoggerFactory = loggerFactory }); } /// /// Create a new using a bearer token for authentication. /// /// /// The base address for the Kubernetes API end-point. /// /// /// The access token to use for authentication to the API. /// /// /// An optional server certificate to expect. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// public static KubeApiClient Create(string apiEndPoint, string accessToken, X509Certificate2 expectServerCertificate = null, ILoggerFactory loggerFactory = null) { return Create(new KubeClientOptions { ApiEndPoint = new Uri(apiEndPoint), AuthStrategy = KubeAuthStrategy.BearerToken, AccessToken = accessToken, CertificationAuthorityCertificate = expectServerCertificate, LoggerFactory = loggerFactory }); } /// /// Create a new using an X.509 certificate for client authentication. /// /// /// The base address for the Kubernetes API end-point. /// /// /// The X.509 certificate to use for client authentication. /// /// /// An optional server certificate to expect. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// public static KubeApiClient Create(string apiEndPoint, X509Certificate2 clientCertificate, X509Certificate2 expectServerCertificate = null, ILoggerFactory loggerFactory = null) { return Create(new KubeClientOptions { ApiEndPoint = new Uri(apiEndPoint), AuthStrategy = KubeAuthStrategy.ClientCertificate, ClientCertificate = clientCertificate, CertificationAuthorityCertificate = expectServerCertificate, LoggerFactory = loggerFactory }); } /// /// Create a new using pod-level configuration. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// /// /// Only works from within a container running in a Kubernetes Pod. /// public static KubeApiClient CreateFromPodServiceAccount(ILoggerFactory loggerFactory = null) { KubeClientOptions clientOptions = KubeClientOptions.FromPodServiceAccount(); clientOptions.LoggerFactory = loggerFactory; return Create(clientOptions); } /// /// Create a new that uses the specified (for testing purposes only). /// /// /// The used to communicate with the Kubernetes API. /// /// /// The used to configure the . /// /// /// The configured . /// public static KubeApiClient CreateTestClient(HttpClient httpClient, KubeClientOptions options) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (options == null) throw new ArgumentNullException(nameof(options)); if (httpClient.BaseAddress == null) throw new ArgumentException("The KubeApiClient's underlying HttpClient must specify a base address.", nameof(httpClient)); options.EnsureValid(); return new KubeApiClient(httpClient, options); } } } ================================================ FILE: src/KubeClient/KubeApiClientLoggingExtensions.cs ================================================ using Microsoft.Extensions.Logging; using System; namespace KubeClient { /// /// Logging-related extension methods for . /// public static class KubeApiClientLoggingExtensions { /// /// Get the used to create loggers for client components. /// /// /// The . /// /// /// The . /// public static ILoggerFactory LoggerFactory(this KubeApiClient kubeApiClient) { if (kubeApiClient == null) throw new ArgumentNullException(nameof(kubeApiClient)); return kubeApiClient.LoggerFactory; } } } ================================================ FILE: src/KubeClient/KubeApiException.cs ================================================ using System; namespace KubeClient { using KubeClient.Http; using Models; /// /// Exception raised when an error result is returned by the Kubernetes API. /// public class KubeApiException : KubeClientException { /// /// Create a new using the information contained in a Kubernetes status model. /// /// /// The Kubernetes model. /// public KubeApiException(StatusV1 status) : base(GetExceptionMessage(status)) { Status = status; } /// /// Create a new using the information contained in a Kubernetes status model. /// /// /// The exception message. /// /// /// The Kubernetes model. /// public KubeApiException(string message, StatusV1 status) : base(message + Environment.NewLine + GetExceptionMessage(status)) { Status = status; } /// /// Create a new using the information contained in a Kubernetes status model. /// /// /// The Kubernetes model. /// /// /// The exception that caused the current exception to be raised. /// public KubeApiException(StatusV1 status, Exception innerException) : base(GetExceptionMessage(status), innerException) { if (innerException == null) throw new ArgumentNullException(nameof(innerException)); Status = status; } /// /// Create a new with the specified message. /// /// /// The exception message. /// /// /// The exception that caused the current exception to be raised. /// public KubeApiException(string message, HttpRequestException innerException) : base(message + Environment.NewLine + GetExceptionMessage(innerException?.Response), innerException) { if (String.IsNullOrWhiteSpace(message)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'message'.", nameof(message)); if (innerException == null) throw new ArgumentNullException(nameof(innerException)); Status = innerException.Response; } /// /// Create a new from an . /// /// /// The exception that caused the current exception to be raised. /// public KubeApiException(HttpRequestException requestException) : base(GetExceptionMessage(requestException?.Response), innerException: requestException) { if (requestException == null) throw new ArgumentNullException(nameof(requestException)); Status = requestException.Response; } /// /// A Kubernetes model that (if present) contains more information about the error. /// public StatusV1 Status { get; protected set; } /// /// Does the exception have a model available? /// public bool HasStatus => Status != null; /// /// The Kubernetes reason code (if available from ). /// public string StatusReason => Status?.Reason; /// /// The Kubernetes error message (if available from ). /// public string StatusMessage => Status?.Message; /// /// Generate an exception message from a Kubernetes status model. /// /// /// The Kubernetes model. /// /// /// The exception message. /// protected static string GetExceptionMessage(StatusV1 status) { if (status == null) return DefaultMessage; if (!String.IsNullOrWhiteSpace(status.Reason)) return $"{status.Reason}: {status.Message}"; if (!String.IsNullOrWhiteSpace(status.Message)) return status.Message; return DefaultMessage; } } } ================================================ FILE: src/KubeClient/KubeClient.csproj ================================================  net7.0;net8.0;net9.0;net10.0;netstandard2.1 A Kubernetes API client for .NET ================================================ FILE: src/KubeClient/KubeClientOptionsExtensions.cs ================================================ using KubeClient.MessageHandlers; using System; namespace KubeClient { using Http.Clients; using Http.Diagnostics; /// /// Extension methods for . /// public static class KubeClientOptionsExtensions { /// /// Configure a from . /// /// /// The used to configure the client. /// /// /// The to configure. /// /// /// The configured . /// public static ClientBuilder Configure(this KubeClientOptions kubeClientOptions, ClientBuilder clientBuilder) { if (kubeClientOptions == null) throw new ArgumentNullException(nameof(kubeClientOptions)); if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); kubeClientOptions.EnsureValid(); switch (kubeClientOptions.AuthStrategy) { case KubeAuthStrategy.Basic: { clientBuilder = clientBuilder.AddHandler( () => new BasicAuthenticationHandler(kubeClientOptions.Username, kubeClientOptions.Password) ); break; } case KubeAuthStrategy.BearerToken: { clientBuilder = clientBuilder.AddHandler( () => new StaticBearerTokenHandler(kubeClientOptions.AccessToken) ); break; } case KubeAuthStrategy.BearerTokenProvider: { clientBuilder = clientBuilder.AddHandler( () => new CommandBearerTokenHandler( accessTokenCommand: kubeClientOptions.AccessTokenCommand, accessTokenCommandArguments: kubeClientOptions.AccessTokenCommandArguments, accessTokenSelector: kubeClientOptions.AccessTokenSelector, accessTokenExpirySelector: kubeClientOptions.AccessTokenExpirySelector, initialAccessToken: kubeClientOptions.InitialAccessToken, initialTokenExpiryUtc: kubeClientOptions.InitialTokenExpiryUtc, environmentVariables: kubeClientOptions.EnvironmentVariables ) ); break; } case KubeAuthStrategy.CredentialPlugin: { clientBuilder = clientBuilder.AddHandler( () => new CommandBearerTokenHandler( accessTokenCommand: kubeClientOptions.AccessTokenCommand, accessTokenCommandArguments: kubeClientOptions.AccessTokenCommandArguments, accessTokenSelector: kubeClientOptions.AccessTokenSelector ?? ".status.token", accessTokenExpirySelector: kubeClientOptions.AccessTokenExpirySelector ?? ".status.expirationTimestamp", initialAccessToken: kubeClientOptions.InitialAccessToken, initialTokenExpiryUtc: kubeClientOptions.InitialTokenExpiryUtc, environmentVariables: kubeClientOptions.EnvironmentVariables ) ); break; } case KubeAuthStrategy.ClientCertificate: { if (kubeClientOptions.ClientCertificate == null) throw new KubeClientException("Cannot specify ClientCertificate authentication strategy without supplying a client certificate."); clientBuilder = clientBuilder.WithClientCertificate(kubeClientOptions.ClientCertificate); break; } } if (kubeClientOptions.AllowInsecure) clientBuilder = clientBuilder.AcceptAnyServerCertificate(); else if (kubeClientOptions.CertificationAuthorityCertificate != null) clientBuilder = clientBuilder.WithServerCertificate(kubeClientOptions.CertificationAuthorityCertificate); LogMessageComponents logComponents = LogMessageComponents.Basic; if (kubeClientOptions.LogHeaders) logComponents |= LogMessageComponents.Headers; if (kubeClientOptions.LogPayloads) logComponents |= LogMessageComponents.Body; clientBuilder = clientBuilder.WithLogging( logger: kubeClientOptions.LoggerFactory.CreateLogger( typeof(KubeApiClient).FullName + ".Http" ), requestComponents: logComponents, responseComponents: logComponents ); return clientBuilder; } /// /// Configure a from . /// /// /// The used to configure the client. /// /// /// The to configure. /// /// /// The configured . /// public static ClientBuilder Configure(this KubeClientOptions kubeClientOptions, ClientBuilder clientBuilder) { if (kubeClientOptions == null) throw new ArgumentNullException(nameof(kubeClientOptions)); if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); kubeClientOptions.EnsureValid(); switch (kubeClientOptions.AuthStrategy) { case KubeAuthStrategy.Basic: { clientBuilder = clientBuilder.AddHandler( context => new BasicAuthenticationHandler(kubeClientOptions.Username, kubeClientOptions.Password) ); break; } case KubeAuthStrategy.BearerToken: { clientBuilder = clientBuilder.AddHandler( context => new StaticBearerTokenHandler(kubeClientOptions.AccessToken) ); break; } case KubeAuthStrategy.BearerTokenProvider: { clientBuilder = clientBuilder.AddHandler( context => new CommandBearerTokenHandler( accessTokenCommand: kubeClientOptions.AccessTokenCommand, accessTokenCommandArguments: kubeClientOptions.AccessTokenCommandArguments, accessTokenSelector: kubeClientOptions.AccessTokenSelector, accessTokenExpirySelector: kubeClientOptions.AccessTokenExpirySelector, initialAccessToken: kubeClientOptions.InitialAccessToken, initialTokenExpiryUtc: kubeClientOptions.InitialTokenExpiryUtc, environmentVariables: kubeClientOptions.EnvironmentVariables ) ); break; } case KubeAuthStrategy.CredentialPlugin: { clientBuilder = clientBuilder.AddHandler( context => new CommandBearerTokenHandler( accessTokenCommand: kubeClientOptions.AccessTokenCommand, accessTokenCommandArguments: kubeClientOptions.AccessTokenCommandArguments, accessTokenSelector: kubeClientOptions.AccessTokenSelector ?? ".status.token", accessTokenExpirySelector: kubeClientOptions.AccessTokenExpirySelector ?? ".status.expirationTimestamp", initialAccessToken: kubeClientOptions.InitialAccessToken, initialTokenExpiryUtc: kubeClientOptions.InitialTokenExpiryUtc, environmentVariables: kubeClientOptions.EnvironmentVariables ) ); break; } case KubeAuthStrategy.ClientCertificate: { if (kubeClientOptions.ClientCertificate == null) throw new KubeClientException("Cannot specify ClientCertificate authentication strategy without supplying a client certificate."); clientBuilder = clientBuilder.WithClientCertificate(kubeClientOptions.ClientCertificate); break; } } if (kubeClientOptions.AllowInsecure) clientBuilder = clientBuilder.AcceptAnyServerCertificate(); else if (kubeClientOptions.CertificationAuthorityCertificate != null) clientBuilder = clientBuilder.WithServerCertificate(kubeClientOptions.CertificationAuthorityCertificate); LogMessageComponents logComponents = LogMessageComponents.Basic; if (kubeClientOptions.LogHeaders) logComponents |= LogMessageComponents.Headers; if (kubeClientOptions.LogPayloads) logComponents |= LogMessageComponents.Body; clientBuilder = clientBuilder.WithLogging( logger: kubeClientOptions.LoggerFactory.CreateLogger( typeof(KubeApiClient).FullName + ".Http" ), requestComponents: logComponents, responseComponents: logComponents ); return clientBuilder; } /// /// Determine if Kubernetes client options are configured to use the default (no-op) logger factory (). /// /// /// The to examine. /// /// /// true, if the options are configured to use the default logger factory; otherwise, false. /// public static bool IsUsingDefaultLoggerFactory(this KubeClientOptions kubeClientOptions) { if (kubeClientOptions == null) throw new ArgumentNullException(nameof(kubeClientOptions)); return ReferenceEquals(kubeClientOptions.LoggerFactory, KubeClientOptions.DefaultLoggerFactory); } /// /// Configure Kubernetes client options to use the default (no-op) logger factory (). /// /// /// The to configure. /// /// /// The configured . /// public static KubeClientOptions UseDefaultLoggerFactory(this KubeClientOptions kubeClientOptions) { if (kubeClientOptions == null) throw new ArgumentNullException(nameof(kubeClientOptions)); kubeClientOptions.LoggerFactory = KubeClientOptions.DefaultLoggerFactory; return kubeClientOptions; } } } ================================================ FILE: src/KubeClient/KubeResourceUpdateExtensions.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient { using Models; using ResourceClients; /// /// Extension methods for updating Kubernetes resources. /// public static class KubeResourceUpdateExtensions { /// /// Update the specified ConfigMap. /// /// /// The resource client. /// /// /// A representing the new state for the ConfigMap. /// /// /// An optional that can be used to cancel the operation. /// /// /// A representing the updated ConfigMap. /// /// /// Updates all mutable fields (if specified on ). /// public static Task Update(this ConfigMapClientV1 client, ConfigMapV1 configMap, CancellationToken cancellationToken = default) { if (client == null) throw new ArgumentNullException(nameof(client)); if (String.IsNullOrWhiteSpace(configMap?.Metadata?.Name)) throw new ArgumentException("Cannot update a ConfigMap if its metadata does not specify a name.", nameof(configMap)); if (String.IsNullOrWhiteSpace(configMap?.Metadata?.Namespace)) throw new ArgumentException("Cannot update a ConfigMap if its metadata does not specify a namespace.", nameof(configMap)); return client.Update( name: configMap.Metadata.Name, kubeNamespace: configMap.Metadata.Namespace, patchAction: patch => { if (configMap.Metadata.Labels != null) { patch.Replace(patchConfigMap => patchConfigMap.Metadata.Labels, value: configMap.Metadata.Labels ); } if (configMap.Metadata.Annotations != null) { patch.Replace(patchConfigMap => patchConfigMap.Metadata.Annotations, value: configMap.Metadata.Annotations ); } if (configMap.Data != null) { patch.Replace(patchConfigMap => patchConfigMap.Data, value: configMap.Data ); } }, cancellationToken: cancellationToken ); } /// /// Update the specified Secret. /// /// /// The resource client. /// /// /// A representing the new state for the Secret. /// /// /// An optional that can be used to cancel the operation. /// /// /// A representing the updated Secret. /// /// /// Updates all mutable fields (if specified on ). /// public static Task Update(this SecretClientV1 client, SecretV1 secret, CancellationToken cancellationToken = default) { if (client == null) throw new ArgumentNullException(nameof(client)); if (String.IsNullOrWhiteSpace(secret?.Metadata?.Name)) throw new ArgumentException("Cannot update a Secret if its metadata does not specify a name.", nameof(secret)); if (String.IsNullOrWhiteSpace(secret?.Metadata?.Namespace)) throw new ArgumentException("Cannot update a Secret if its metadata does not specify a namespace.", nameof(secret)); return client.Update( name: secret.Metadata.Name, kubeNamespace: secret.Metadata.Namespace, patchAction: patch => { if (secret.Metadata.Labels != null) { patch.Replace(patchSecret => patchSecret.Metadata.Labels, value: secret.Metadata.Labels ); } if (secret.Metadata.Annotations != null) { patch.Replace(patchSecret => patchSecret.Metadata.Annotations, value: secret.Metadata.Annotations ); } if (secret.Data != null) { patch.Replace(patchSecret => patchSecret.Data, value: secret.Data ); } }, cancellationToken: cancellationToken ); } } } ================================================ FILE: src/KubeClient/MessageHandlers/BasicAuthenticationHandler.cs ================================================ using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading; using System.Threading.Tasks; namespace KubeClient.MessageHandlers { /// /// Basic Authentication Handler for username/password authentication. /// public class BasicAuthenticationHandler : DelegatingHandler { readonly string _encoded; /// /// Create a new . /// /// The username to use /// The password to use public BasicAuthenticationHandler(string username, string password) { if(String.IsNullOrEmpty(username)) throw new ArgumentNullException(nameof(username)); if(String.IsNullOrEmpty(password)) throw new ArgumentNullException(nameof(password)); _encoded = Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password)); } /// protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { request.Headers.Authorization = new AuthenticationHeaderValue("Basic", _encoded); return base.SendAsync(request, cancellationToken); } } } ================================================ FILE: src/KubeClient/MessageHandlers/BearerTokenHandler.cs ================================================ using System; using System.Net.Http; using System.Net.Http.Headers; using System.Threading; using System.Threading.Tasks; namespace KubeClient.MessageHandlers { /// /// The base class for HTTP message handlers that add a bearer token to outgoing requests. /// public abstract class BearerTokenHandler : DelegatingHandler { /// /// Create a new . /// protected BearerTokenHandler() { } /// /// Obtain a bearer token to use for authentication. /// /// /// An optional that can be used to cancel the operation. /// /// /// The access token. /// protected abstract Task GetTokenAsync(CancellationToken cancellationToken); /// /// Asynchronously process an HTTP request. /// /// /// The outgoing request message. /// /// /// An optional that can be used to cancel the request. /// /// /// The incoming response message. /// protected sealed override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { if (request == null) throw new ArgumentNullException(nameof(request)); string token = await GetTokenAsync(cancellationToken).ConfigureAwait(false); request.Headers.Authorization = new AuthenticationHeaderValue(scheme: "Bearer", parameter: token); return await base.SendAsync(request, cancellationToken).ConfigureAwait(false); } } } ================================================ FILE: src/KubeClient/MessageHandlers/CommandBearerTokenHandler.cs ================================================ using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Threading; using System.Threading.Tasks; using KubeClient.Utilities; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace KubeClient.MessageHandlers { /// /// HTTP message handler that runs a command to obtain a bearer token and adds it to outgoing requests. /// public class CommandBearerTokenHandler : BearerTokenHandler { /// /// An object used to synchronise access to handler state. /// readonly object _stateLock = new object(); /// /// The command to execute in order to obtain the access token for outgoing requests. /// readonly string _accessTokenCommand; /// /// The arguments (if any) for the access-token command. /// readonly string _accessTokenCommandArguments; /// /// The JPath-style selector used to retrieve the access token from the command output. /// readonly string _accessTokenSelector; /// /// The JPath-style selector used to retrieve the access token's expiry date/time from the command output. /// readonly string _accessTokenExpirySelector; /// /// The current access token (if any). /// string _accessToken; /// /// The UTC date/time that the access token expires. /// DateTime? _accessTokenExpiresUtc; /// /// Environment variables assigned to the executed command /// private readonly Dictionary _environmentVariables; /// /// Create a new . /// /// /// The command to execute in order to obtain the access token for outgoing requests. /// /// /// The arguments (if any) for the access-token command. /// /// /// The Go-style selector used to retrieve the access token from the command output. /// /// /// The Go-style selector used to retrieve the access token's expiry date/time from the command output. /// /// /// The initial access token (if any) to use for authentication. /// /// /// The UTC date / time the the initial access token (if any) expires. /// /// /// Environment variables assigned to the executed command /// public CommandBearerTokenHandler(string accessTokenCommand, string accessTokenCommandArguments, string accessTokenSelector, string accessTokenExpirySelector, string initialAccessToken = null, DateTime? initialTokenExpiryUtc = null, Dictionary environmentVariables = null) { if (String.IsNullOrWhiteSpace(accessTokenCommand)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'accessTokenCommand'.", nameof(accessTokenCommand)); if (String.IsNullOrWhiteSpace(accessTokenSelector)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'accessTokenSelector'.", nameof(accessTokenSelector)); if (String.IsNullOrWhiteSpace(accessTokenExpirySelector)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'accessTokenExpirySelector'.", nameof(accessTokenExpirySelector)); _accessTokenCommand = accessTokenCommand; _accessTokenCommandArguments = accessTokenCommandArguments ?? String.Empty; _accessTokenSelector = JPathFromGoSelector(accessTokenSelector); _accessTokenExpirySelector = JPathFromGoSelector(accessTokenExpirySelector); if (!String.IsNullOrWhiteSpace(initialAccessToken)) _accessToken = initialAccessToken; _accessTokenExpiresUtc = initialTokenExpiryUtc; _environmentVariables = environmentVariables; } /// /// Obtain a bearer token to use for authentication. /// /// /// An optional that can be used to cancel the operation. /// /// /// The access token. /// protected override async Task GetTokenAsync(CancellationToken cancellationToken) { string accessToken; DateTime? accessTokenExpiresUtc; // Capture snapshot of access token / expiry. lock (_stateLock) { accessToken = _accessToken; accessTokenExpiresUtc = _accessTokenExpiresUtc; } if (!String.IsNullOrWhiteSpace(accessToken) && accessTokenExpiresUtc > DateTime.UtcNow) return accessToken; cancellationToken.ThrowIfCancellationRequested(); ProcessStartInfo accessTokenCommandInfo = new ProcessStartInfo(_accessTokenCommand, _accessTokenCommandArguments) { CreateNoWindow = true, RedirectStandardOutput = true, RedirectStandardError = true, UseShellExecute = false, }; if (_environmentVariables?.Count > 0) foreach (var environmentVariable in _environmentVariables) accessTokenCommandInfo.Environment.Add(environmentVariable.Key, environmentVariable.Value); using (Process accessTokenCommand = Process.Start(accessTokenCommandInfo)) { int exitCode = await accessTokenCommand.WaitForExitAsync(cancellationToken, killIfCancelled: true); if (exitCode != 0) { // We omit the command's STDOUT / STDERR from this exception message because they may contain sensitive information! throw new KubeClientException( $"Failed to execute access-token command '{_accessTokenCommand} {_accessTokenCommandArguments}' (process exited with code {exitCode})." ); } string standardOutput = await accessTokenCommand.StandardOutput.ReadToEndAsync().ConfigureAwait(false); cancellationToken.ThrowIfCancellationRequested(); // Ensure command output is JSON JObject outputJson; try { outputJson = JObject.Parse(standardOutput); } catch (JsonReaderException invalidJson) { throw new KubeClientException($"Failed to parse output of access-token command '{_accessTokenCommand} {_accessTokenCommandArguments}' (not valid JSON).", innerException: invalidJson ); } accessToken = outputJson.SelectToken(_accessTokenSelector)?.Value(); if (accessToken == null) { throw new KubeClientException( $"Failed to find access-token in output of command '{_accessTokenCommand} {_accessTokenCommandArguments}' using JPath selector '{_accessTokenSelector}'." + Environment.NewLine + standardOutput ); } string accessTokenExpiresUtcValue = outputJson.SelectToken(_accessTokenExpirySelector)?.Value(); if (accessTokenExpiresUtcValue == null) { throw new KubeClientException( $"Failed to find access-token lifetime in output of command '{_accessTokenCommand} {_accessTokenCommandArguments}' using JPath selector '{_accessTokenExpirySelector}'." + Environment.NewLine + standardOutput ); } accessTokenExpiresUtc = ConvertAccessTokenExpiresUtc(accessTokenExpiresUtcValue); // OK, both access token and expiry are good; update atomically. lock (_stateLock) { _accessToken = accessToken; _accessTokenExpiresUtc = accessTokenExpiresUtc; } return accessToken; } } private static DateTime ConvertAccessTokenExpiresUtc(string accessTokenExpiresUtcValue) { return DateTime.Parse(accessTokenExpiresUtcValue, provider: CultureInfo.InvariantCulture, styles: DateTimeStyles.AssumeUniversal ); } /// /// Convert a Go-style selector to a JPath-style selector. /// /// /// The Go-style selector (e.g. "{.foo.bar}"). /// /// /// The JPath-style selector (e.g. "$.foo.bar"). /// static string JPathFromGoSelector(string goSelector) { if (String.IsNullOrWhiteSpace(goSelector)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'goSelector'.", nameof(goSelector)); string jpathSelector = goSelector; if (jpathSelector[0] == '{' && jpathSelector[jpathSelector.Length - 1] == '}') jpathSelector = jpathSelector.Substring(1, jpathSelector.Length - 2); if (jpathSelector[0] == '.') jpathSelector = '$' + jpathSelector; return jpathSelector; } } } ================================================ FILE: src/KubeClient/MessageHandlers/StaticBearerTokenHandler.cs ================================================ using System; using System.Net.Http; using System.Net.Http.Headers; using System.Threading; using System.Threading.Tasks; namespace KubeClient.MessageHandlers { /// /// HTTP message handler that adds a bearer token to outgoing requests. /// public class StaticBearerTokenHandler : BearerTokenHandler { /// /// The bearer token added to outgoing requests. /// readonly string _token; /// /// Create a new . /// /// /// The bearer token added to outgoing requests. /// public StaticBearerTokenHandler(string token) { if (String.IsNullOrWhiteSpace(token)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'token'.", nameof(token)); _token = token; } /// /// Obtain a bearer token to use for authentication. /// /// /// An optional that can be used to cancel the operation. /// /// /// The access token. /// protected override Task GetTokenAsync(CancellationToken cancellationToken) => Task.FromResult(_token); } } ================================================ FILE: src/KubeClient/Models/ContractResolvers/KubeContractResolver.cs ================================================ using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Text; namespace KubeClient.Models.ContractResolvers { /// /// JSON contract resolver for K8s models. /// /// /// Preserves casing of dictionary keys, but all other keys are converted to camelCase. /// public class KubeContractResolver : CamelCasePropertyNamesContractResolver { /// /// Create a new . /// public KubeContractResolver() { } /// /// Get the JSON property name used to represent a dictionary key. /// /// The dictionary key. /// The JSON property name. protected override string ResolveDictionaryKey(string dictionaryKey) => dictionaryKey; } } ================================================ FILE: src/KubeClient/Models/Converters/DynamicKubeObjectV1Converter.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Reflection; namespace KubeClient.Models.Converters { /// /// Dynamic JSON converter for types derived from . /// public class DynamicKubeObjectConverter : JsonConverter { /// /// The CLR representing . /// static readonly TypeInfo KubeObjectV1Type = typeof(KubeObjectV1).GetTypeInfo(); /// /// Registered model types, keyed by K8s kind and apiVersion. /// readonly Dictionary<(string kind, string apiVersion), Type> _modelTypesByKubeKind; /// /// Create a new . /// /// Assemblies containing model types supported for deserialisation. public DynamicKubeObjectConverter(params Assembly[] modelTypeAssemblies) : this((IEnumerable)modelTypeAssemblies) { } /// /// Create a new . /// /// Assemblies containing model types supported for deserialisation. public DynamicKubeObjectConverter(IEnumerable modelTypeAssemblies) { if (modelTypeAssemblies == null) throw new ArgumentNullException(nameof(modelTypeAssemblies)); _modelTypesByKubeKind = ModelMetadata.KubeObject.BuildKindToTypeLookup(modelTypeAssemblies); var listModelTypesByKubeKind = ModelMetadata.KubeObject.BuildKindToListTypeLookup(modelTypeAssemblies); foreach (var kubeKind in listModelTypesByKubeKind.Keys) _modelTypesByKubeKind[kubeKind] = listModelTypesByKubeKind[kubeKind]; } /// /// Determine wither the converter can convert an object of the specified type to / from JSON. /// /// /// The target object . /// /// /// true, if the converter can convert an object of the specified type; otherwise, false. /// public override bool CanConvert(Type objectType) { if (objectType == null) throw new ArgumentNullException(nameof(objectType)); return KubeObjectV1Type.IsAssignableFrom( objectType.GetTypeInfo() ); } /// /// This converter only supports deserialisation (not serialisation). /// public override bool CanWrite => false; /// /// Read (deserialise) an object from JSON. /// /// /// A representing the JSON to read from. /// /// /// The target object . /// /// /// The existing value (unused). /// /// /// A that can be used for nested deserialisation. /// /// /// The deserialised object. /// public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader == null) throw new ArgumentNullException(nameof(reader)); if (objectType == null) throw new ArgumentNullException(nameof(objectType)); TypeInfo objectTypeInfo = objectType.GetTypeInfo(); if (!KubeObjectV1Type.IsAssignableFrom(objectTypeInfo)) throw new NotSupportedException($"{GetType().FullName} cannot deserialise a value of type '{objectType.FullName}' (not derived from {typeof(KubeObjectV1).FullName})."); JObject json = JObject.Load(reader); string kind = json.Value("kind"); if (string.IsNullOrWhiteSpace(kind)) throw new KubeClientException($"Cannot deserialise {nameof(KubeObjectV1)} from JSON because the 'kind' property is missing."); string apiVersion = json.Value("apiVersion"); if (string.IsNullOrWhiteSpace(apiVersion)) throw new KubeClientException($"Cannot deserialise {nameof(KubeObjectV1)} from JSON because the 'apiVersion' property is missing."); Type modelType; if (!_modelTypesByKubeKind.TryGetValue((kind, apiVersion), out modelType)) throw new KubeClientException($"Cannot deserialise {nameof(KubeObjectV1)} from JSON because no model type has been registered for '{apiVersion}/{kind}'."); // Ensure the registered model type is actually compatible with the model type being deserialised. if (!objectTypeInfo.IsAssignableFrom(modelType.GetTypeInfo())) throw new NotSupportedException($"{GetType().FullName} cannot deserialise a value of type '{modelType.FullName}' (not derived from {objectType.FullName})."); return serializer.Deserialize(json.CreateReader(), modelType); } /// /// Write (serialise) an object to JSON. /// /// /// A used to write the JSON. /// /// /// The value to serialise. /// /// /// A that can be used for nested serialisation. /// public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (writer == null) throw new ArgumentNullException(nameof(writer)); if (serializer == null) throw new ArgumentNullException(nameof(serializer)); throw new NotSupportedException("This converter only supports deserialisation (not serialisation)."); } } } ================================================ FILE: src/KubeClient/Models/Converters/DynamicKubeResourceV1Converter.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Reflection; namespace KubeClient.Models.Converters { /// /// Dynamic JSON converter for types derived from . /// public class DynamicKubeResourceV1Converter : JsonConverter { /// /// The CLR representing . /// static readonly TypeInfo KubeResourceV1Type = typeof(KubeResourceV1).GetTypeInfo(); /// /// Registered model types, keyed by K8s kind and apiVersion. /// readonly Dictionary<(string kind, string apiVersion), Type> _modelTypesByKubeKind; /// /// Create a new . /// /// Assemblies containing model types supported for deserialisation. public DynamicKubeResourceV1Converter(params Assembly[] modelTypeAssemblies) : this((IEnumerable)modelTypeAssemblies) { } /// /// Create a new . /// /// Assemblies containing model types supported for deserialisation. public DynamicKubeResourceV1Converter(IEnumerable modelTypeAssemblies) { if (modelTypeAssemblies == null) throw new ArgumentNullException(nameof(modelTypeAssemblies)); _modelTypesByKubeKind = ModelMetadata.KubeObject.BuildKindToTypeLookup(modelTypeAssemblies); } /// /// Determine wither the converter can convert an object of the specified type to / from JSON. /// /// /// The target object . /// /// /// true, if the converter can convert an object of the specified type; otherwise, false. /// public override bool CanConvert(Type objectType) { if (objectType == null) throw new ArgumentNullException(nameof(objectType)); return KubeResourceV1Type.IsAssignableFrom( objectType.GetTypeInfo() ); } /// /// This converter only supports deserialisation (not serialisation). /// public override bool CanWrite => false; /// /// Read (deserialise) an object from JSON. /// /// /// A representing the JSON to read from. /// /// /// The target object . /// /// /// The existing value (unused). /// /// /// A that can be used for nested deserialisation. /// /// /// The deserialised object. /// public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader == null) throw new ArgumentNullException(nameof(reader)); if (objectType == null) throw new ArgumentNullException(nameof(objectType)); TypeInfo objectTypeInfo = objectType.GetTypeInfo(); if (!KubeResourceV1Type.IsAssignableFrom(objectTypeInfo)) throw new NotSupportedException($"{GetType().FullName} cannot deserialise a value of type '{objectType.FullName}' (not derived from {typeof(KubeResourceV1).FullName})."); JObject json = JObject.Load(reader); string kind = json.Value("kind"); if (string.IsNullOrWhiteSpace(kind)) throw new KubeClientException($"Cannot deserialise {nameof(KubeResourceV1)} from JSON because the 'kind' property is missing."); string apiVersion = json.Value("apiVersion"); if (string.IsNullOrWhiteSpace(apiVersion)) throw new KubeClientException($"Cannot deserialise {nameof(KubeResourceV1)} from JSON because the 'apiVersion' property is missing."); Type modelType; if (!_modelTypesByKubeKind.TryGetValue((kind, apiVersion), out modelType)) throw new KubeClientException($"Cannot deserialise {nameof(KubeResourceV1)} from JSON because no model type has been registered for '{apiVersion}/{kind}'."); // Ensure the registered model type is actually compatible with the model type being deserialised. if (!objectTypeInfo.IsAssignableFrom(modelType.GetTypeInfo())) throw new NotSupportedException($"{GetType().FullName} cannot deserialise a value of type '{modelType.FullName}' (not derived from {objectType.FullName})."); return serializer.Deserialize(json.CreateReader(), modelType); } /// /// Write (serialise) an object to JSON. /// /// /// A used to write the JSON. /// /// /// The value to serialise. /// /// /// A that can be used for nested serialisation. /// public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (writer == null) throw new ArgumentNullException(nameof(writer)); if (serializer == null) throw new ArgumentNullException(nameof(serializer)); throw new NotSupportedException("This converter only supports deserialisation (not serialisation)."); } } } ================================================ FILE: src/KubeClient/Models/Converters/Int32OrStringV1Converter.cs ================================================ using System; using Newtonsoft.Json; namespace KubeClient.Models.Converters { /// /// JSON converter for . /// public class Int32OrStringV1Converter : JsonConverter { /// /// The CLR corresponding to . /// static readonly Type Int32OrStringV1Type = typeof(Int32OrStringV1); /// /// Create a new . /// public Int32OrStringV1Converter() { } /// /// Determine wither the converter can convert an object of the specified type to / from JSON. /// /// /// The target object . /// /// /// true, if the converter can convert an object of the specified type; otherwise, false. /// public override bool CanConvert(Type objectType) => objectType == Int32OrStringV1Type; /// /// Read (deserialise) an object from JSON. /// /// /// A representing the JSON to read from. /// /// /// The target object . /// /// /// The existing value (unused). /// /// /// A that can be used for nested deserialisation. /// /// /// The deserialised object. /// public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader == null) throw new ArgumentNullException(nameof(reader)); if (objectType == null) throw new ArgumentNullException(nameof(objectType)); if (objectType != Int32OrStringV1Type) throw new NotSupportedException($"{GetType().FullName} cannot deserialise a value of type '{objectType.FullName}'."); switch (reader.TokenType) { case JsonToken.Null: { return null; } case JsonToken.Integer: { return new Int32OrStringV1((int)(long)reader.Value); } case JsonToken.String: { return new Int32OrStringV1((string)reader.Value); } default: { throw new JsonException($"Unexpected token type '{reader.TokenType}' for {nameof(Int32OrStringV1)} (expected one of [{JsonToken.Null}, {JsonToken.Integer}, {JsonToken.String}])."); } } } /// /// Write (serialise) an object to JSON. /// /// /// A used to write the JSON. /// /// /// The value to serialise. /// /// /// A that can be used for nested serialisation. /// public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (writer == null) throw new ArgumentNullException(nameof(writer)); if (serializer == null) throw new ArgumentNullException(nameof(serializer)); var typedValue = (Int32OrStringV1)value; if (typedValue.IsInt32) { writer.WriteValue( (int)typedValue ); } else if (typedValue.IsString) { writer.WriteValue( (string)typedValue ); } else writer.WriteNull(); } } } ================================================ FILE: src/KubeClient/Models/Converters/MicroTimeV1Converter.cs ================================================ using System; using Newtonsoft.Json; namespace KubeClient.Models.Converters { /// /// JSON converter for . /// public class MicroTimeV1Converter : JsonConverter { /// /// The CLR corresponding to . /// static readonly Type MicroTimeV1Type = typeof(MicroTimeV1); /// /// The CLR corresponding to . /// static readonly Type NullableMicroTimeV1Type = typeof(MicroTimeV1?); /// /// Create a new . /// public MicroTimeV1Converter() { } /// /// Determine wither the converter can convert an object of the specified type to / from JSON. /// /// /// The target object . /// /// /// true, if the converter can convert an object of the specified type; otherwise, false. /// public override bool CanConvert(Type objectType) => objectType == MicroTimeV1Type; /// /// Read (deserialise) an object from JSON. /// /// /// A representing the JSON to read from. /// /// /// The target object . /// /// /// The existing value (unused). /// /// /// A that can be used for nested deserialisation. /// /// /// The deserialised object. /// public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader == null) throw new ArgumentNullException(nameof(reader)); if (objectType == null) throw new ArgumentNullException(nameof(objectType)); if (objectType != MicroTimeV1Type && objectType != NullableMicroTimeV1Type) throw new NotSupportedException($"{GetType().FullName} cannot deserialise a value of type '{objectType.FullName}'."); switch (reader.TokenType) { case JsonToken.Null: { if (objectType == NullableMicroTimeV1Type) return null; return default(MicroTimeV1); } case JsonToken.Date: { return new MicroTimeV1( (DateTime)reader.Value ); } case JsonToken.String: { return new MicroTimeV1( DateTime.Parse( (string)reader.Value ) ); } default: { throw new JsonException($"Unexpected token type '{reader.TokenType}' for {nameof(MicroTimeV1)} (expected one of [{JsonToken.Null}, {JsonToken.Date}, {JsonToken.String}])."); } } } /// /// Write (serialise) an object to JSON. /// /// /// A used to write the JSON. /// /// /// The value to serialise. /// /// /// A that can be used for nested serialisation. /// public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (writer == null) throw new ArgumentNullException(nameof(writer)); if (serializer == null) throw new ArgumentNullException(nameof(serializer)); if (value != null) { var microTime = (MicroTimeV1)value; writer.WriteValue(microTime.Value); } else writer.WriteNull(); } } } ================================================ FILE: src/KubeClient/Models/Converters/ResourceEventV1Converter.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; namespace KubeClient.Models.Converters { /// /// Dynamic JSON converter for . /// public class ResourceEventV1Converter : JsonConverter { /// /// The CLR representing , specialised for . /// static readonly Type ResourceEventV1Type = typeof(ResourceEventV1); /// /// The CLR representing . /// static readonly TypeInfo KubeResourceV1Type = typeof(KubeResourceV1).GetTypeInfo(); /// /// Default assemblies always scanned for model types. /// static readonly IEnumerable DefaultModelAssemblies = new Assembly[] { KubeResourceV1Type.Assembly }; /// /// Registered model types, keyed by K8s kind and apiVersion. /// readonly Dictionary<(string kind, string apiVersion), Type> _modelTypesByKubeKind; /// /// Create a new . /// /// Assemblies containing model types supported for deserialisation. public ResourceEventV1Converter(params Assembly[] modelTypeAssemblies) : this((IEnumerable)modelTypeAssemblies) { } /// /// Create a new . /// /// Assemblies containing model types supported for deserialisation. public ResourceEventV1Converter(IEnumerable modelTypeAssemblies) { if (modelTypeAssemblies == null) throw new ArgumentNullException(nameof(modelTypeAssemblies)); _modelTypesByKubeKind = ModelMetadata.KubeObject.BuildKindToTypeLookup( DefaultModelAssemblies.Concat(modelTypeAssemblies) ); } /// /// Determine wither the converter can convert an object of the specified type to / from JSON. /// /// /// The target object . /// /// /// true, if the converter can convert an object of the specified type; otherwise, false. /// public override bool CanConvert(Type objectType) => objectType == ResourceEventV1Type; /// /// This converter only supports deserialisation (not serialisation). /// public override bool CanWrite => false; /// /// Read (deserialise) an object from JSON. /// /// /// A representing the JSON to read from. /// /// /// The target object . /// /// /// The existing value (unused). /// /// /// A that can be used for nested deserialisation. /// /// /// The deserialised object. /// public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader == null) throw new ArgumentNullException(nameof(reader)); if (objectType == null) throw new ArgumentNullException(nameof(objectType)); if (objectType != ResourceEventV1Type) throw new NotSupportedException($"{GetType().Name} cannot deserialise a value of type '{objectType.FullName}' (only {typeof(ResourceEventV1).FullName} is supported)."); JObject eventJson = JObject.Load(reader); var resourceEvent = new ResourceEventV1 { EventType = DeserializeEventType(eventJson), Resource = DeserializeResource(eventJson, serializer) }; return resourceEvent; } /// /// Write (serialise) an object to JSON. /// /// /// A used to write the JSON. /// /// /// The value to serialise. /// /// /// A that can be used for nested serialisation. /// public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (writer == null) throw new ArgumentNullException(nameof(writer)); if (serializer == null) throw new ArgumentNullException(nameof(serializer)); throw new NotSupportedException($"{GetType().Name} only supports deserialisation (not serialisation)."); } /// /// Deserialise the event's type from JSON. /// /// The serialised event JSON. /// A value representing the event type. ResourceEventType DeserializeEventType(JObject eventJson) { if (eventJson == null) throw new ArgumentNullException(nameof(eventJson)); if (eventJson.Property("type") == null) throw new NotSupportedException($"{GetType().Name} cannot deserialise JSON because it does not represent a valid {nameof(ResourceEventV1)} (missing 'type' property)."); ResourceEventType eventType; string rawEventType = eventJson.Value("type"); if (!Enum.TryParse(rawEventType, ignoreCase: true, out eventType)) throw new NotSupportedException($"{GetType().Name} cannot deserialise JSON because it does not represent a valid {nameof(ResourceEventV1)} ('type' property has invalid value '{rawEventType}')."); return eventType; } /// /// Get the event's serialised resource from JSON. /// /// The serialised event JSON. /// A containing the serialised resource JSON, the resource kind, and the resource API version. (JObject resourceJson, string kind, string apiVersion) GetResourceJson(JObject eventJson) { if (eventJson == null) throw new ArgumentNullException(nameof(eventJson)); // "object" property might not be present at all. JObject resourceJson = eventJson.Value("object"); if (resourceJson == null) return (resourceJson: null, kind: null, apiVersion: null); string kind = resourceJson.Value("kind"); if (string.IsNullOrWhiteSpace(kind)) throw new KubeClientException($"{GetType().Name} cannot deserialise {nameof(KubeResourceV1)} from JSON because the 'kind' property is missing."); string apiVersion = resourceJson.Value("apiVersion"); if (string.IsNullOrWhiteSpace(apiVersion)) throw new KubeClientException($"{GetType().Name} cannot deserialise {nameof(KubeResourceV1)} from JSON because the 'apiVersion' property is missing."); return (resourceJson, kind, apiVersion); } /// /// Get the CLR type representing the model for the specified resource kind and API version. /// /// The K8s resource kind. /// The K8s API version. /// The model . Type GetModelType(string kind, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(kind)}.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(apiVersion)}.", nameof(apiVersion)); Type modelType; if (!_modelTypesByKubeKind.TryGetValue((kind, apiVersion), out modelType)) throw new KubeClientException($"{GetType().Name} cannot deserialise {nameof(KubeResourceV1)} from JSON because no model type has been registered for '{apiVersion}/{kind}'."); // Ensure the registered model type is actually compatible with the model type being deserialised. if (!KubeResourceV1Type.IsAssignableFrom(modelType.GetTypeInfo())) throw new NotSupportedException($"{GetType().Name} cannot deserialise a value of type '{modelType.FullName}' (not derived from {KubeResourceV1Type.FullName})."); return modelType; } /// /// Deserialise the event's resource from JSON. /// /// The serialised event JSON. /// The JSON serialiser used to deserialise the resource. /// The deserialised resource. KubeResourceV1 DeserializeResource(JObject eventJson, JsonSerializer serializer) { (JObject resourceJson, string kind, string apiVersion) = GetResourceJson(eventJson); if (resourceJson == null) return null; // AF: I think it's possible for the event's resource to be null in some cases. Type modelType = GetModelType(kind, apiVersion); return (KubeResourceV1)serializer.Deserialize(resourceJson.CreateReader(), modelType); } } } ================================================ FILE: src/KubeClient/Models/DeleteOptionsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace KubeClient.Models { /// /// DeleteOptions may be provided when deleting an API object. /// [KubeObject("DeleteOptions", "v1")] public class DeleteOptionsV1 : KubeObjectV1 { /// /// 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. /// [JsonProperty("gracePeriodSeconds")] public int? GracePeriodSeconds { get; set; } /// /// 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. /// [JsonProperty("orphanDependents", NullValueHandling = NullValueHandling.Ignore)] public bool? OrphanDependents { get; set; } /// /// Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned. /// [JsonProperty("preconditions")] public PreconditionsV1 Preconditions { get; set; } /// /// 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. /// [JsonProperty("propagationPolicy", NullValueHandling = NullValueHandling.Ignore)] public DeletePropagationPolicy? PropagationPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/DeletePropagationPolicy.cs ================================================ namespace KubeClient.Models { /// /// Well-known policies for propagating deletion of a resource to its children. /// public enum DeletePropagationPolicy { /// /// Do not delete child resources. /// Orphan = 0, /// /// Delete child resources in the foreground; parent's deletion will not complete until child resources have been deleted. /// Foreground = 1, /// /// Delete child resources in the foreground; child resources will be deleted asynchronously. /// Background = 2, } } ================================================ FILE: src/KubeClient/Models/ExecCredentialV1Beta1.cs ================================================ using System.Collections.Generic; namespace KubeClient.Models { /// /// The model for the response returned by client-go credential plugins. /// [KubeObject("ExecCredential", "client.authentication.k8s.io/v1beta1")] public class ExecCredentialV1Beta1 : KubeObjectV1 { /// /// Create a new . /// public ExecCredentialV1Beta1() { } /// /// The credential plugin's status. /// public Dictionary Status { get; } = new Dictionary(); /// /// Determine whether the credential status should be serialised. /// /// /// true, if the credential status should be serialised; otherwise, false. /// public bool ShouldSerializeStatus() => Status.Count > 0; /// /// Get the value of the "status/token" field (if present). /// /// /// The token, or null if the field is not present. /// public string GetToken() { if (Status.TryGetValue("token", out object token)) return token as string; return null; } } } ================================================ FILE: src/KubeClient/Models/IResourceEventV1.cs ================================================ namespace KubeClient.Models { /// /// Represents the payload for a Kubernetes resource event. /// /// /// The type of resource to which the event relates. /// /// This interface is used to support covariance on . public interface IResourceEventV1 where TResource : KubeResourceV1 { /// /// The event type. /// ResourceEventType EventType { get; set; } /// /// The resource to which the event relates. /// TResource Resource { get; } } } ================================================ FILE: src/KubeClient/Models/Int32OrStringV1.cs ================================================ using Newtonsoft.Json; using System; using YamlDotNet.Core; using YamlDotNet.Core.Events; using YamlDotNet.Serialization; namespace KubeClient.Models { using Converters; /// /// Union type representing a K8s API value that can be either a string or an integer. /// /// /// Any string that cannot be parsed as a number will be treated as a string; otherwise, it will be treated as an . /// [JsonConverter(typeof(Int32OrStringV1Converter))] public class Int32OrStringV1 : IEquatable, IEquatable, IEquatable, IYamlConvertible { /// /// The CLR representing . /// static readonly Type Int32OrStringV1Type = typeof(Int32OrStringV1); /// /// The underlying value (if it is an ). /// int? _intValue; /// /// The underlying value (if it not an ). /// string _stringValue; /// /// Wrap an in an . /// /// /// The to wrap. /// public Int32OrStringV1(int value) { _intValue = value; _stringValue = null; } /// /// Wrap a in an . /// /// /// The to wrap. /// public Int32OrStringV1(string value) { if (Int32.TryParse(value, out int intValue)) { _intValue = intValue; _stringValue = null; } else { _stringValue = value; _intValue = null; } } /// /// YAML deserialisation constructor. /// public Int32OrStringV1() { } /// /// The underlying value as an . /// /// /// The underlying value is not a valid 32-bit integer. /// public int Int32Value => _intValue ?? throw new InvalidCastException($"The value '{_stringValue}' is not a valid 32-bit integer."); /// /// The underlying value as a . /// public string StringValue => _intValue?.ToString() ?? _stringValue; /// /// Is the underlying value a valid 32-bit integer? /// public bool IsInt32 => _intValue.HasValue; /// /// Is the underlying value a (non-null) string? /// public bool IsString => _stringValue != null; /// /// Determine whether the is equivalent to another . /// /// /// The other . /// /// /// true, if the is equivalent to the other ; otherwise false. /// public bool Equals(Int32OrStringV1 other) => _intValue == other._intValue && _stringValue == other._stringValue; /// /// Determine whether the is equivalent to another . /// /// /// The other . /// /// /// true, if the is equivalent to the other ; otherwise false. /// public bool Equals(int other) => _intValue == other; /// /// Determine whether the is equivalent to another . /// /// /// The other . /// /// /// true, if the is equivalent to the other ; otherwise false. /// public bool Equals(string other) => _stringValue == other; /// /// Determine whether the is equivalent to another object. /// /// /// The other object. /// /// /// true, if the is equivalent to the other object; otherwise false. /// public override bool Equals(object other) { if (other is Int32OrStringV1 otherInt32OrStringV1) return Equals(otherInt32OrStringV1); if (other is int otherInt32) return Equals(otherInt32); if (other is string otherString) return Equals(otherString); return false; } /// /// Get a hash code to represent the . /// /// /// The hash code. /// public override int GetHashCode() => _intValue?.GetHashCode() ?? _stringValue?.GetHashCode() ?? 0; /// /// Get a string representation of the . /// public override string ToString() => StringValue; /// /// Read the 's value from YAML. /// /// The YAML parser to read from. /// The expected type to deserialise into (must be ). /// An that can be used to deserialise nested objects (unused for since it's a scalar data-type). void IYamlConvertible.Read(IParser parser, Type expectedType, ObjectDeserializer nestedObjectDeserializer) { if ( parser == null ) throw new ArgumentNullException(nameof(parser)); if ( expectedType == null ) throw new ArgumentNullException(nameof(expectedType)); if (expectedType != Int32OrStringV1Type) throw new NotSupportedException($"The {nameof(IYamlConvertible)} implementation of {nameof(Int32OrStringV1)} can only handle values of type '{Int32OrStringV1Type.FullName}'."); switch ( parser.Current ) { case Scalar scalar: { if ( Int32.TryParse(scalar.Value, out int intValue) ) { _intValue = intValue; _stringValue = null; } else { _stringValue = scalar.Value; _intValue = null; } break; } default: { throw new YamlException($"Unexpected parser event '{parser.Current.GetType().Name}'."); } } // Leave the parser on the next token (we're done parsing this one). parser.MoveNext(); } /// /// Write the 's value to YAML. /// /// The YAML emitter that the value will be written to. /// An that can be used to serialise nested objects (unused for ). void IYamlConvertible.Write(IEmitter emitter, ObjectSerializer nestedObjectSerializer) { if ( emitter == null ) throw new ArgumentNullException(nameof(emitter)); if ( nestedObjectSerializer == null ) throw new ArgumentNullException(nameof(nestedObjectSerializer)); emitter.Emit(new Scalar( value: ToString() )); } /// /// Explicitly convert an to an . /// /// /// The to convert. /// /// /// The . /// /// /// The underlying value is not a valid 32-bit integer. /// public static explicit operator Int32(Int32OrStringV1 value) => value._intValue ?? throw new InvalidCastException("The specified value is not an Int32."); /// /// Explicitly convert an to a . /// /// /// The to convert. /// /// /// The . /// public static explicit operator string(Int32OrStringV1 value) => value._stringValue ?? value._intValue?.ToString(); /// /// Implicitly convert an to an . /// /// /// The to convert. /// /// /// The . /// public static implicit operator Int32OrStringV1(int value) => new Int32OrStringV1(value); /// /// Implicitly convert a to an . /// /// /// The to convert. /// /// /// The . /// public static implicit operator Int32OrStringV1(string value) => value != null ? new Int32OrStringV1(value) : null; /// /// Test if 2 s are equivalent. /// /// /// The first . /// /// /// The second . /// /// /// true, if the s are equivalent; otherwise, false. /// public static bool operator==(Int32OrStringV1 left, Int32OrStringV1 right) { if (ReferenceEquals(left, null) && ReferenceEquals(right, null)) return true; if (ReferenceEquals(left, null) || ReferenceEquals(right, null)) return false; return left.Equals(right); } /// /// Test if 2 s are not equivalent. /// /// /// The first . /// /// /// The second . /// /// /// true, if the s are not equivalent; otherwise, false. /// public static bool operator!=(Int32OrStringV1 left, Int32OrStringV1 right) { if (ReferenceEquals(left, null) && ReferenceEquals(right, null)) return false; if (ReferenceEquals(left, null) || ReferenceEquals(right, null)) return true; return !left.Equals(right); } /// /// Test if an is equivalent to an . /// /// /// The . /// /// /// The . /// /// /// true, if the is equivalent to the ; otherwise, false. /// public static bool operator==(Int32OrStringV1 left, int right) { if (ReferenceEquals(left, null)) return false; return left.Equals(right); } /// /// Test if an is not equivalent to an . /// /// /// The . /// /// /// The . /// /// /// true, if the is not equivalent to the ; otherwise, false. /// public static bool operator!=(Int32OrStringV1 left, int right) { if (ReferenceEquals(left, null)) return true; return !left.Equals(right); } /// /// Test if an is equivalent to a . /// /// /// The . /// /// /// The . /// /// /// true, if the is equivalent to the ; otherwise, false. /// public static bool operator==(Int32OrStringV1 left, string right) { if (ReferenceEquals(left, null) && ReferenceEquals(right, null)) return true; if (ReferenceEquals(left, null) || ReferenceEquals(right, null)) return false; return left.Equals(right); } /// /// Test if an is not equivalent to a . /// /// /// The . /// /// /// The . /// /// /// true, if the is not equivalent to the ; otherwise, false. /// public static bool operator!=(Int32OrStringV1 left, string right) { if (ReferenceEquals(left, null) && ReferenceEquals(right, null)) return false; if (ReferenceEquals(left, null) || ReferenceEquals(right, null)) return true; return !left.Equals(right); } } } ================================================ FILE: src/KubeClient/Models/JSONSchemaPropsOrBoolV1.cs ================================================ using Newtonsoft.Json; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. /// public partial class JSONSchemaPropsOrBoolV1 { /// /// Description not provided. /// [YamlMember(Alias = "Schema")] [JsonProperty("Schema", NullValueHandling = NullValueHandling.Include)] public JSONSchemaPropsV1 Schema { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "Allows")] [JsonProperty("Allows", NullValueHandling = NullValueHandling.Include)] public bool Allows { get; set; } } } ================================================ FILE: src/KubeClient/Models/JSONSchemaPropsOrStringArrayV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. /// public partial class JSONSchemaPropsOrStringArrayV1 { /// /// Description not provided. /// [YamlMember(Alias = "Schema")] [JsonProperty("Schema", NullValueHandling = NullValueHandling.Include)] public JSONSchemaPropsV1 Schema { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "Property")] [JsonProperty("Property", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Property { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/JSONSchemaPropsV1.cs ================================================ using Newtonsoft.Json; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). /// public partial class JSONSchemaPropsV1 { /// /// x-kubernetes-patch-merge-strategy annotates an object to describe the strategy used when performing a patch-merge. /// [YamlMember(Alias = "x-kubernetes-patch-strategy")] [JsonProperty("x-kubernetes-patch-strategy", NullValueHandling = NullValueHandling.Ignore)] public string KubernetesPatchMergeStrategy { get; set; } /// /// x-kubernetes-patch-merge-key annotates an object to describe the key used when performing a patch-merge. /// [YamlMember(Alias = "x-kubernetes-patch-merge-key")] [JsonProperty("x-kubernetes-patch-merge-key", NullValueHandling = NullValueHandling.Ignore)] public string KubernetesPatchMergeKey { get; set; } } } ================================================ FILE: src/KubeClient/Models/KubeActions.cs ================================================ using System; namespace KubeClient.Models { /// /// Well-known actions supported by Kubernetes resource APIs. /// public enum KubeAction { /// /// An unknown action. /// Unknown = 0, /// /// Retrieve a single resource by name. /// Get = 1, /// /// Create a new resource. /// Create = 2, /// /// Delete a resource by name. /// Delete = 3, /// /// Delete multiple resources. /// DeleteCollection = 4, /// /// Retrieve a list of resources. /// List = 5, /// /// Selectively update part(s) of a resource. /// Patch = 6, /// /// Replace a resource. /// Update = 7, /// /// Watch a resource for changes. /// Watch = 8, /// /// Watch a list of resources for changes. /// WatchList = 9, /// /// Connect to a resource. /// Connect = 10, /// /// Create a proxy connection to a resource. /// Proxy = 11 } } ================================================ FILE: src/KubeClient/Models/KubeApiAttribute.cs ================================================ using System; namespace KubeClient.Models { /// /// Declares the path for one or more Kubernetes resource API actions. /// [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)] public class KubeApiAttribute : Attribute { /// /// Declare a path and one or more actions for the Kubernetes resource API represented by the target model. /// /// /// The API action. /// /// /// The API path(s) supporting the action. /// public KubeApiAttribute(KubeAction action, params string[] paths) { if (paths.Length == 0) throw new ArgumentException("Must specify at least one API path.", nameof(paths)); Action = action; Paths = paths; } /// /// The API action. /// public KubeAction Action { get; } /// /// The API path(s) supporting the action. /// public string[] Paths { get; } } } ================================================ FILE: src/KubeClient/Models/KubeListItemAttribute.cs ================================================ using System; namespace KubeClient.Models { /// /// Mark a model class as representing a list whose items are Kubernetes objects of a specific kind / API version. /// [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] public class KubeListItemAttribute : Attribute { /// /// Mark the model class as representing a list of Kubernetes objects of the specified kind / API version. /// /// /// The object kind. /// /// /// The object API version. /// public KubeListItemAttribute(string kind, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'version'.", nameof(apiVersion)); Kind = kind; ApiVersion = apiVersion; } /// /// The item kind. /// public string Kind { get; } /// /// The item API version. /// public string ApiVersion { get; } } } ================================================ FILE: src/KubeClient/Models/KubeObjectAttribute.cs ================================================ using System; namespace KubeClient.Models { /// /// Mark a model class as representing a Kubernetes object. /// [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] public class KubeObjectAttribute : Attribute { /// /// Mark the model class as representing a Kubernetes object. /// /// /// The object kind. /// /// /// The object API version. /// public KubeObjectAttribute(string kind, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'version'.", nameof(apiVersion)); Kind = kind; ApiVersion = apiVersion; } /// /// The resource kind. /// public string Kind { get; } /// /// The resource API version. /// public string ApiVersion { get; } } } ================================================ FILE: src/KubeClient/Models/KubeObjectV1.cs ================================================ using System; using System.Collections.Concurrent; using System.Reflection; using Newtonsoft.Json; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// The base class for Kubernetes models. /// public class KubeObjectV1 { /// /// Model type metadata. /// static readonly ConcurrentDictionary ModelMetadata = new ConcurrentDictionary(); /// /// Create a new , automatically initialising and (if possible). /// protected KubeObjectV1() { (Kind, ApiVersion) = GetKubeKind(GetType()); } /// /// 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/api-conventions.md#types-kinds /// [JsonProperty("kind")] [YamlMember(Alias = "kind")] public string Kind { get; set; } /// /// 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/api-conventions.md#resources /// [JsonProperty("apiVersion")] [YamlMember(Alias = "apiVersion")] public string ApiVersion { get; set; } /// /// Get Kubernetes Kind / ApiVersion metadata for the specified object type. /// /// /// The target object type. /// /// /// A tuple containing the object's Kind and ApiVersion metadata (or null and null, if no metadata is available for ). /// public static (string kind, string apiVersion) GetKubeKind() where TObject : KubeObjectV1 { return GetKubeKind( typeof(TObject) ); } /// /// Get Kubernetes Kind / ApiVersion metadata for the specified object type. /// /// /// The Kubernetes object type. /// /// /// A tuple containing the object's Kind and ApiVersion metadata (or null and null, if no metadata is available for ). /// public static (string kind, string apiVersion) GetKubeKind(Type kubeObjectType) { if (kubeObjectType == null) throw new ArgumentNullException(nameof(kubeObjectType)); (string kind, string apiVersion) kubeKind = ModelMetadata.GetOrAdd(kubeObjectType, modelType => { var kubeObjectAttribute = modelType.GetTypeInfo().GetCustomAttribute(); if (kubeObjectAttribute != null) return (kubeObjectAttribute.Kind, kubeObjectAttribute.ApiVersion); return (null, null); }); return kubeKind; } } /// /// Extension methods for . /// public static class KubeObjectExtensions { /// /// Remove type metadata (Kind and ApiVersion) from the . /// /// /// The . /// /// /// The (enables inline use). /// public static TObject NoTypeMeta(this TObject kubeObject) where TObject : KubeObjectV1 { if (kubeObject == null) return null; kubeObject.Kind = null; kubeObject.ApiVersion = null; return kubeObject; } } } ================================================ FILE: src/KubeClient/Models/KubeResourceListResultV1.cs ================================================ using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace KubeClient.Models { /// /// Represents the result of a Kubernetes API operation that returns a list of resources. /// /// /// The type of resource returned by the operation. /// public class KubeResourceListResultV1 : KubeResultV1, IEnumerable where TResource : KubeResourceV1 { /// /// Create a new representing the specified list. /// /// /// The list represented by the . /// public KubeResourceListResultV1(KubeResourceListV1 resources) : base(DefaultStatus(resources)) { Resources = resources; } /// /// Create a new representing a . /// /// /// The represented by the . /// public KubeResourceListResultV1(StatusV1 status) : base(status) { } /// /// The represented by the . /// public KubeResourceListV1 Resources { get; } /// /// The type of resource represented by the . /// public override Type ResourceType => typeof(TResource); /// /// Implicitly convert a to a . /// /// /// The to convert. /// /// /// The result's . /// /// /// The result does not represent success. /// public static implicit operator KubeResourceListV1(KubeResourceListResultV1 result) { if (result == null) return null; if (!result.IsSuccess) throw new KubeApiException(result.Status); return result.Resources; } /// /// Convert a to a . /// /// /// The to convert. /// /// /// A that wraps the . /// public static implicit operator KubeResourceListResultV1(KubeResourceListV1 resources) => new KubeResourceListResultV1(resources); /// /// Convert a to a . /// /// /// The to convert. /// /// /// A that wraps the . /// public static implicit operator KubeResourceListResultV1(StatusV1 status) { if (status == null) return null; return new KubeResourceListResultV1(status); } /// /// The default used when no status is available because an operation returned a list of resources. /// protected static StatusV1 DefaultStatus(KubeResourceListV1 resources) { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); int resourceCount = resources != null ? resources.Items.Count : 0; return StatusV1.Success($"Result contains {resourceCount} {apiVersion}/{kind} resources."); } /// /// Get a typed enumerator for the resources returned with the result. /// /// /// The enumerator. /// /// /// The result does not represent success. /// public IEnumerator GetEnumerator() { if (!IsSuccess) throw new KubeApiException(Status); if (Resources == null) return Enumerable.Empty().GetEnumerator(); return Resources.GetEnumerator(); } /// /// Get an untyped enumerator for the resources returned with the result. /// /// /// The enumerator. /// /// /// The result does not represent success. /// IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } } ================================================ FILE: src/KubeClient/Models/KubeResourceListV1.cs ================================================ using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Reflection; using Newtonsoft.Json; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// The base class for Kubernetes resource lists. /// public abstract class KubeResourceListV1 : KubeObjectV1 { /// /// Model type metadata. /// static readonly ConcurrentDictionary ItemModelMetadata = new ConcurrentDictionary(); /// /// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata /// [JsonProperty("metadata")] [YamlMember(Alias = "metadata")] public ListMetaV1 Metadata { get; set; } /// /// Enumerate the list's items. /// /// /// The list's items. /// public abstract IEnumerable EnumerateItems(); /// /// Get Kubernetes Kind / ApiVersion metadata for the items contained by the specified list type. /// /// /// The target resource-list type. /// /// /// A tuple containing the item Kind and ApiVersion metadata (or null and null, if no item metadata is available for ). /// public static (string kind, string apiVersion) GetListItemKubeKind() where TResourceList : KubeResourceListV1 { return GetListItemKubeKind( typeof(TResourceList) ); } /// /// Get Kubernetes Kind / ApiVersion metadata for the items contained by the specified list type. /// /// /// The target resource-list type. /// /// /// A tuple containing the item Kind and ApiVersion metadata (or null and null, if no item metadata is available for the resource-list type). /// public static (string kind, string apiVersion) GetListItemKubeKind(Type resourceListType) { (string kind, string apiVersion) = ItemModelMetadata.GetOrAdd(resourceListType, modelType => { var kubeListItemAttribute = modelType.GetTypeInfo().GetCustomAttribute(); if (kubeListItemAttribute != null) return (kubeListItemAttribute.Kind, kubeListItemAttribute.ApiVersion); return (null, null); }); return (kind, apiVersion); } } /// /// The base class for Kubernetes resource lists where the resource type is known. /// /// /// The type of resource contained in the list. /// [JsonObject] public abstract class KubeResourceListV1 : KubeResourceListV1, IEnumerable where TResource : KubeResourceV1 { /// /// The list's resources. /// public abstract List Items { get; } /// /// Enumerate the list's items. /// /// /// The list's items. /// public override IEnumerable EnumerateItems() { foreach (TResource resource in Items) yield return (KubeResourceV1)resource; } /// /// Get a typed enumerator for the list's resources. /// /// /// The . /// public IEnumerator GetEnumerator() => Items.GetEnumerator(); /// /// Get an untyped enumerator for the list's resources. /// /// /// The . /// IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } } ================================================ FILE: src/KubeClient/Models/KubeResourceResultV1.cs ================================================ using System; namespace KubeClient.Models { /// /// Represents the result of a Kubernetes API operation that returns a resource. /// /// /// The type of resource returned by the operation. /// public class KubeResourceResultV1 : KubeResultV1 where TResource : KubeResourceV1 { /// /// Create a new representing the specified . /// /// /// The represented by the . /// public KubeResourceResultV1(TResource resource) : base(DefaultStatus) { Resource = resource; } /// /// Create a new representing a . /// /// /// The represented by the . /// public KubeResourceResultV1(StatusV1 status) : base(status) { } /// /// The represented by the . /// public TResource Resource { get; } /// /// The type of resource represented by the . /// public override Type ResourceType => typeof(TResource); /// /// Implicitly convert a to a . /// /// /// The to convert. /// /// /// The result's . /// /// /// The result does not represent success. /// public static implicit operator TResource(KubeResourceResultV1 result) { if (result == null) return null; if (!result.IsSuccess) throw new KubeApiException(result.Status); return result.Resource; } /// /// Convert a to a . /// /// /// The to convert. /// /// /// A that wraps the . /// public static implicit operator KubeResourceResultV1(TResource resource) => new KubeResourceResultV1(resource); /// /// Convert a to a . /// /// /// The to convert. /// /// /// A that wraps the . /// public static implicit operator KubeResourceResultV1(StatusV1 status) { if (status == null) return null; return new KubeResourceResultV1(status); } /// /// The default used when no status is available because an operation returned a status. /// protected static StatusV1 DefaultStatus { get { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); return StatusV1.Success($"Result contains a {apiVersion}/{kind} resource."); } } } } ================================================ FILE: src/KubeClient/Models/KubeResourceV1.cs ================================================ using Newtonsoft.Json; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// The base class for Kubernetes resources. /// public abstract class KubeResourceV1 : KubeObjectV1 { /// /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata /// [JsonProperty("metadata")] [YamlMember(Alias = "metadata")] public ObjectMetaV1 Metadata { get; set; } } } ================================================ FILE: src/KubeClient/Models/KubeResultV1.cs ================================================ using System; namespace KubeClient.Models { /// /// Represents the result of a Kubernetes API operation. /// public abstract class KubeResultV1 { /// /// A representing the operation status. /// public StatusV1 Status { get; protected set; } /// /// Does the result represent a successful operation? /// public bool IsSuccess => Status?.IsSuccess ?? false; /// /// The type of resource represented by the . /// public abstract Type ResourceType { get; } /// /// Create a new . /// /// /// The that represents the operation result. /// protected KubeResultV1(StatusV1 status) { if (status == null) throw new ArgumentNullException(nameof(status)); Status = status; } /// /// Implicitly convert a to a . /// /// /// The to convert. /// /// /// The result's . /// public static implicit operator StatusV1(KubeResultV1 result) { if (result == null) return null; return result.Status; } } } ================================================ FILE: src/KubeClient/Models/MergeStrategyAttribute.cs ================================================ using System; namespace KubeClient.Models { /// /// Marks a property as supporting merge when using strategic patch in the Kubernetes API. /// [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)] public class MergeStrategyAttribute : PatchStrategyAttribute { /// /// Mark the property as supporting merge when using strategic patch in the Kubernetes API. /// public MergeStrategyAttribute() { } /// /// The name of the field (if any) to use as a key when merging items. /// public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/MicroTimeV1.cs ================================================ using System; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { using Converters; /// /// MicroTime is version of Time with microsecond level precision. /// [JsonConverter(typeof(MicroTimeV1Converter))] public struct MicroTimeV1 // TODO: Implement IFormattable, IComparable, IEquatable, IComparable, IEquatable { /// /// The underlying value. /// readonly DateTime _value; /// /// Create a new . /// /// /// The underlying value. /// public MicroTimeV1(DateTime value) { _value = value; } /// /// The underlying value. /// public DateTime Value => _value; /// /// Convert the to a string. /// /// /// The string representation of the . /// public override string ToString() => _value.ToString("o"); /// /// Implicit cast operator from to . /// /// The value to convert. public static implicit operator DateTime(MicroTimeV1 microTime) => microTime.Value; /// /// Implicit cast operator from to . /// /// The value to convert. public static implicit operator MicroTimeV1(DateTime value) { // TODO: Decide if we want to round value to nearest microsecond as part of conversion in this direction. return new MicroTimeV1(value); } } } ================================================ FILE: src/KubeClient/Models/ModelExtensions.cs ================================================ using System; using System.Collections.Generic; using System.Linq; namespace KubeClient.Models { /// /// Extension methods for Kubernetes API models. /// public static class ModelExtensions { /// /// Get the host name and port corresponding to the Service. /// /// /// The Kubernetes . /// /// /// The name of the port to use. /// /// /// The host name and port. /// public static (string hostName, int? port) GetHostAndPort(this ServiceV1 service, string portName) { if (service == null) throw new ArgumentNullException(nameof(service)); if (String.IsNullOrWhiteSpace(portName)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'portName'.", nameof(portName)); string hostName = $"{service.Metadata.Name}.{service.Metadata.Namespace}.svc.cluster.local"; ServicePortV1 targetPort = service.Spec.Ports.FirstOrDefault( servicePort => servicePort.Name == portName ); int? port = null; if (targetPort != null) { if (service.Spec.Type == "NodePort") port = targetPort.NodePort; else port = targetPort.Port; } return (hostName, port); } /// /// Determine whether a Deployment owns a ReplicaSet. /// /// /// The ReplicaSet to examine. /// /// /// The Deployment to examine. /// /// /// true, if the ReplicaSet has an owner-reference to the Deployment; otherwise, false. /// public static bool IsOwnedBy(this ReplicaSetV1 replicaSet, DeploymentV1 deployment) { if (replicaSet == null) throw new ArgumentNullException(nameof(replicaSet)); if (deployment == null) throw new ArgumentNullException(nameof(deployment)); if (replicaSet.Metadata == null) throw new ArgumentException("Cannot evaluate ownership of the supplied ReplicaSet because its Metadata is null.", nameof(replicaSet)); if (deployment.Metadata == null) throw new ArgumentException("Cannot evaluate ownership of the supplied ReplicaSet because the supplied Deployment's Metadata is null.", nameof(replicaSet)); bool isOwnedBy = replicaSet.Metadata.OwnerReferences.Any(ownerReference => ownerReference.Kind == deployment.Kind && ownerReference.ApiVersion == deployment.ApiVersion && ownerReference.Name == deployment.Metadata.Name ); return isOwnedBy; } /// /// Determine the revision (represented by the "deployment.kubernetes.io/revision" annotation) of the Deployment. /// /// /// The model. /// /// /// The revision, if present; null, if the annotation is absent or not a number. /// public static int? GetRevision(this DeploymentV1 deployment) { if (deployment == null) throw new ArgumentNullException(nameof(deployment)); if (deployment.Metadata == null) return null; string rawRevision; if (!deployment.Metadata.Annotations.TryGetValue(K8sAnnotations.Deployment.Revision, out rawRevision)) return null; int revision; if (!Int32.TryParse(rawRevision, out revision)) return null; return revision; } /// /// Determine the revision (represented by the "deployment.kubernetes.io/revision" annotation) of the Deployment represented by the ReplicaSet. /// /// /// The model. /// /// /// The revision, if present; null, if the annotation is absent or not a number. /// public static int? GetRevision(this ReplicaSetV1 deployment) { if (deployment == null) throw new ArgumentNullException(nameof(deployment)); if (deployment.Metadata == null) return null; string rawRevision; if (!deployment.Metadata.Annotations.TryGetValue(K8sAnnotations.Deployment.Revision, out rawRevision)) return null; int revision; if (!Int32.TryParse(rawRevision, out revision)) return null; return revision; } /// /// Get the composite label selector (if any) associated with the specified Deployment. /// /// /// A representing the Deployment's current state. /// /// /// The composite label selector (e.g. "key1=value1,key2=value2"), or null if the Deployment doesn't specify any label selectors. /// public static string GetLabelSelector(this DeploymentV1 deployment) { if (deployment == null) throw new ArgumentNullException(nameof(deployment)); return deployment.Spec?.Selector?.GetLabelSelector(); } /// /// Get the composite label selector (if any) associated with the specified Deployment. /// /// /// A representing the Deployment's current state. /// /// /// The composite label selector (e.g. "key1=value1,key2=value2"), or null if 's is empty. /// public static string GetLabelSelector(this LabelSelectorV1 labelSelector) { if (labelSelector == null) throw new ArgumentNullException(nameof(labelSelector)); if (labelSelector.MatchLabels.Count == 0) return null; return String.Join(",", labelSelector.MatchLabels.Select( selector => $"{selector.Key}={selector.Value}" )); } /// /// Create an ObjectReference (v1) representing the resource. /// /// The . /// The new . /// /// has null metadata. /// public static ObjectReferenceV1 ToObjectReference(this KubeResourceV1 resource) { if (resource == null) throw new ArgumentNullException(nameof(resource)); ObjectMetaV1 metadata = resource.Metadata; if (metadata == null) throw new ArgumentException($"{nameof(KubeResourceV1)} has no metadata.", nameof(resource)); return new ObjectReferenceV1 { Kind = resource.Kind, ApiVersion = resource.ApiVersion ?? "v1", Name = metadata.Name, Namespace = metadata.Namespace, Uid = metadata.Uid, ResourceVersion = metadata.ResourceVersion }; } } } ================================================ FILE: src/KubeClient/Models/ModelMetadata.cs ================================================ using System; using System.Reflection; using System.Linq.Expressions; using System.Linq; using System.Collections.Concurrent; using System.Collections.Generic; namespace KubeClient.Models { /// /// Helper methods for working with model metadata. /// public static class ModelMetadata { /// /// Represents an empty list of keys (resource field names). /// static readonly IReadOnlyList NoKeys = new string[0]; /// /// model metadata. /// public static class KubeObject { /// /// The representing . /// static readonly Type KubeResourceV1Type = typeof(KubeResourceV1); /// /// The representing . /// static readonly Type KubeResourceListV1Type = typeof(KubeResourceListV1); /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of kind/apiVersion tuples, keyed by model type. /// public static Dictionary BuildTypeToKindLookup(params Assembly[] assemblies) => BuildTypeToKindLookup((IEnumerable)assemblies); /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of kind/apiVersion tuples, keyed by model type. /// public static Dictionary BuildTypeToKindLookup(IEnumerable assemblies) { if (assemblies == null) throw new ArgumentNullException(nameof(assemblies)); var lookup = new Dictionary(); foreach (Type modelType in assemblies.SelectMany(assembly => assembly.GetTypes())) { TypeInfo modelTypeInfo = modelType.GetTypeInfo(); if (!modelTypeInfo.IsPublic) continue; if (!modelTypeInfo.IsClass) continue; if (modelTypeInfo.IsAbstract) continue; if (!KubeResourceV1Type.IsAssignableFrom(modelType)) continue; var kubeObjectAttribute = modelTypeInfo.GetCustomAttribute(); if (kubeObjectAttribute == null) continue; var kubeKind = (kind: kubeObjectAttribute.Kind, apiVersion: kubeObjectAttribute.ApiVersion); lookup[modelType] = kubeKind; } return lookup; } /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of kind/apiVersion tuples, keyed by model type. /// public static Dictionary BuildListTypeToKindLookup(params Assembly[] assemblies) => BuildListTypeToKindLookup((IEnumerable)assemblies); /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of kind/apiVersion tuples, keyed by model type. /// public static Dictionary BuildListTypeToKindLookup(IEnumerable assemblies) { if (assemblies == null) throw new ArgumentNullException(nameof(assemblies)); var lookup = new Dictionary(); foreach (Type modelType in assemblies.SelectMany(assembly => assembly.GetTypes())) { TypeInfo modelTypeInfo = modelType.GetTypeInfo(); if (!modelTypeInfo.IsPublic) continue; if (!modelTypeInfo.IsClass) continue; if (modelTypeInfo.IsAbstract) continue; if (!KubeResourceListV1Type.IsAssignableFrom(modelType)) continue; var kubeObjectAttribute = modelTypeInfo.GetCustomAttribute(); if (kubeObjectAttribute == null) continue; var kubeKind = (kind: kubeObjectAttribute.Kind, apiVersion: kubeObjectAttribute.ApiVersion); lookup[modelType] = kubeKind; } return lookup; } /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of model types, keyed by kind/apiVersion tuple. /// public static Dictionary<(string kind, string apiVersion), Type> BuildKindToTypeLookup(params Assembly[] assemblies) => BuildKindToTypeLookup((IEnumerable)assemblies); /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of model types, keyed by kind/apiVersion tuple. /// public static Dictionary<(string kind, string apiVersion), Type> BuildKindToTypeLookup(IEnumerable assemblies) { if (assemblies == null) throw new ArgumentNullException(nameof(assemblies)); var lookup = new Dictionary<(string kind, string apiVersion), Type>(); foreach (Type modelType in assemblies.SelectMany(assembly => assembly.GetTypes())) { TypeInfo modelTypeInfo = modelType.GetTypeInfo(); if (!modelTypeInfo.IsPublic) continue; if (!modelTypeInfo.IsClass) continue; if (modelTypeInfo.IsAbstract) continue; if (!KubeResourceV1Type.IsAssignableFrom(modelType)) continue; var kubeObjectAttribute = modelTypeInfo.GetCustomAttribute(); if (kubeObjectAttribute == null) continue; var kubeKind = (kind: kubeObjectAttribute.Kind, apiVersion: kubeObjectAttribute.ApiVersion); lookup[kubeKind] = modelType; } return lookup; } /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of model types, keyed by kind/apiVersion tuple. /// public static Dictionary<(string kind, string apiVersion), Type> BuildKindToListTypeLookup(params Assembly[] assemblies) => BuildKindToListTypeLookup((IEnumerable)assemblies); /// /// Get kind and apiVersion metadata for all model types in the specified assemblies that derive from . /// /// /// The target assemblies. /// /// /// A dictionary of model types, keyed by kind/apiVersion tuple. /// public static Dictionary<(string kind, string apiVersion), Type> BuildKindToListTypeLookup(IEnumerable assemblies) { if (assemblies == null) throw new ArgumentNullException(nameof(assemblies)); var lookup = new Dictionary<(string kind, string apiVersion), Type>(); foreach (Type modelType in assemblies.SelectMany(assembly => assembly.GetTypes())) { TypeInfo modelTypeInfo = modelType.GetTypeInfo(); if (!modelTypeInfo.IsPublic) continue; if (!modelTypeInfo.IsClass) continue; if (modelTypeInfo.IsAbstract) continue; if (!KubeResourceListV1Type.IsAssignableFrom(modelType)) continue; var kubeObjectAttribute = modelTypeInfo.GetCustomAttribute(); if (kubeObjectAttribute == null) continue; var kubeListItemAttribute = modelTypeInfo.GetCustomAttribute(); if (kubeListItemAttribute == null) continue; var kubeKind = (kind: kubeListItemAttribute.Kind, apiVersion: kubeListItemAttribute.ApiVersion); lookup[kubeKind] = modelType; } return lookup; } } /// /// Helper methods for working with model metadata relating to strategic resource patching. /// public static class StrategicPatch { /// /// Determine whether the specified resource field supports merge in K8s strategic patch. /// /// /// The target property. /// /// /// true, if the property supports merge; otherwise, false. /// public static bool IsMergeStrategy(PropertyInfo property) { if (property == null) throw new ArgumentNullException(nameof(property)); return property.GetCustomAttribute() != null; } /// /// Determine whether the specified resource field retains existing values for fields if they are not supplied in K8s strategic patch (via the $retainKeys directive). /// /// /// The target property. /// /// /// true, if the existing values are retained; otherwise, false. /// public static bool IsRetainKeysStrategy(PropertyInfo property) { if (property == null) throw new ArgumentNullException(nameof(property)); return property.GetCustomAttribute() != null; } /// /// Get all patch strategies applicable to the specified property. /// /// /// The target property. /// /// /// One or more flags indicating the applicable strategies. /// public static PatchStrategies GetStrategies(PropertyInfo property) { PatchStrategies patchStrategies = PatchStrategies.Replace; foreach (PatchStrategyAttribute strategyAttribute in property.GetCustomAttributes()) { switch (strategyAttribute) { case MergeStrategyAttribute mergeStrategy: { patchStrategies |= PatchStrategies.Merge; break; } case RetainKeysStrategyAttribute retainKeys: { patchStrategies |= PatchStrategies.RetainKeys; break; } } } return patchStrategies; } /// /// Get the merge key (if any) represented by the specified model property. /// /// /// The target property. /// /// /// The merge key, or null if the property does not represent the resource's merge key. /// public static string GetMergeKey(PropertyInfo property) { if (property == null) throw new ArgumentNullException(nameof(property)); return property.GetCustomAttribute()?.Key; } /// /// Helper methods for working with typed model metadata relating to strategic resource patching. /// /// /// The model type. /// public static class For where TModel : class { /// /// Determine whether the specified property supports merge in K8s strategic resource patching. /// /// /// The property type. /// /// /// A property-access expression representing the target property. /// /// /// true, if the property supports merge; otherwise, false. /// public static bool IsMergeStrategy(Expression> propertyAccessExpression) { if (propertyAccessExpression == null) throw new ArgumentNullException(nameof(propertyAccessExpression)); return StrategicPatch.IsMergeStrategy( GetProperty(propertyAccessExpression) ); } /// /// Determine whether the specified resource field retains existing values for fields if they are not supplied in K8s strategic patch (via the $retainKeys directive). /// /// /// The property type. /// /// /// A property-access expression representing the target property. /// /// /// true, if existing values are retained; otherwise, false. /// public static bool IsRetainKeysStrategy(Expression> propertyAccessExpression) { if (propertyAccessExpression == null) throw new ArgumentNullException(nameof(propertyAccessExpression)); return StrategicPatch.IsRetainKeysStrategy( GetProperty(propertyAccessExpression) ); } /// /// Get all patch strategies applicable to the specified property. /// /// /// The property type. /// /// /// A property-access expression representing the target property. /// /// /// One or more flags indicating the applicable strategies. /// public static PatchStrategies GetStrategies(Expression> propertyAccessExpression) { if (propertyAccessExpression == null) throw new ArgumentNullException(nameof(propertyAccessExpression)); return StrategicPatch.GetStrategies( GetProperty(propertyAccessExpression) ); } /// /// Get the merge key (if any) represented by the specified model property. /// /// /// The property type. /// /// /// A property-access expression representing the target property. /// /// /// The merge key, or null if the property does not represent the resource's merge key. /// public static string GetMergeKey(Expression> propertyAccessExpression) { if (propertyAccessExpression == null) throw new ArgumentNullException(nameof(propertyAccessExpression)); return StrategicPatch.GetMergeKey( GetProperty(propertyAccessExpression) ); } } } /// /// Retrieve the property represented by the specified property-access expression. /// /// /// A property-access expression representing the target property. /// /// /// The model type. /// /// /// The property type. /// /// /// A representing the property. /// static PropertyInfo GetProperty(Expression> propertyAccessExpression) where TModel : class { if (propertyAccessExpression.Body.NodeType != ExpressionType.MemberAccess) throw new ArgumentException("The supplied expression does not represent a member-access expression.", nameof(propertyAccessExpression)); MemberExpression memberAccess = (MemberExpression)propertyAccessExpression.Body; PropertyInfo property = memberAccess.Member as PropertyInfo; if (property == null) throw new ArgumentException("The supplied expression does not represent a property-access expression.", nameof(propertyAccessExpression)); return property; } } } ================================================ FILE: src/KubeClient/Models/ObjectMetaV1.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. /// public partial class ObjectMetaV1 { /// /// Additional data (if any) that does not correspond to properties defined on the model. /// [JsonExtensionData] readonly Dictionary _extensionData = new Dictionary(); /// /// Additional serialised data (if any) that does not correspond to properties defined on the model. /// [JsonIgnore, YamlIgnore] public IDictionary ExtensionData => _extensionData; } } ================================================ FILE: src/KubeClient/Models/PatchStrategies.cs ================================================ using System; namespace KubeClient.Models { /// /// Represents field-level strategies for Kubernetes strategic patch. /// [Flags] public enum PatchStrategies { /// /// Field contents will be replaced. /// Replace = 0, /// /// Field contents will be merged. /// Merge = 1, /// /// Field contents will be replaced, except for contents whose keys match a value supplied in the $retainKeys directive. /// RetainKeys = 2 } } ================================================ FILE: src/KubeClient/Models/PatchStrategyAttribute.cs ================================================ using System; namespace KubeClient.Models { /// /// Base class for attributes representing property-level patch strategies in Kubernetes strategic patch. /// public abstract class PatchStrategyAttribute : Attribute { /// /// Create a new . /// protected PatchStrategyAttribute() { } } } ================================================ FILE: src/KubeClient/Models/QuantityResource.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace KubeClient.Models { /// /// No description provided. /// [KubeObject("Quantity", "resource")] public class QuantityResource { } } ================================================ FILE: src/KubeClient/Models/ResourceEventType.cs ================================================ using System.Runtime.Serialization; namespace KubeClient.Models { /// /// Well-known types of Kubernetes resource events. /// public enum ResourceEventType { /// /// Resource was created. /// [EnumMember(Value = "ADDED")] Added, /// /// Resource was modified. /// [EnumMember(Value = "MODIFIED")] Modified, /// /// Resource was deleted. /// [EnumMember(Value = "DELETED")] Deleted, /// /// Event represents a watch bookmark. /// /// [EnumMember(Value = "BOOKMARK")] Bookmark, /// /// Resource encountered an error condition. /// [EnumMember(Value = "ERROR")] Error } } ================================================ FILE: src/KubeClient/Models/ResourceEventV1.cs ================================================ using Newtonsoft.Json; namespace KubeClient.Models { /// /// Represents the payload for a Kubernetes resource event. /// /// /// The type of resource to which the event relates. /// public class ResourceEventV1 : IResourceEventV1 where TResource : KubeResourceV1 { /// /// The event type. /// [JsonProperty("type")] public ResourceEventType EventType { get; set; } /// /// The resource to which the event relates. /// [JsonProperty("object")] public TResource Resource { get; set; } } } ================================================ FILE: src/KubeClient/Models/RetainKeysStrategyAttribute.cs ================================================ using System; namespace KubeClient.Models { /// /// Marks a property as supporting merge when using strategic patch in the Kubernetes API. /// [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)] public class RetainKeysStrategyAttribute : PatchStrategyAttribute { /// /// Mark the property as supporting merge when using strategic patch in the Kubernetes API. /// public RetainKeysStrategyAttribute() { } } } ================================================ FILE: src/KubeClient/Models/StatusV1.cs ================================================ using System; using System.Collections.Generic; using Newtonsoft.Json; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Status is a return value for calls that don't return other objects. /// public partial class StatusV1 { /// /// The value representing success. /// public const string SuccessStatus = "Success"; /// /// The value representing failure. /// public const string FailureStatus = "Failure"; /// /// Does the represent success? /// [JsonIgnore, YamlIgnore] public bool IsSuccess => Status == SuccessStatus; /// /// Does the represent failure? /// [JsonIgnore, YamlIgnore] public bool IsFailure => Status == FailureStatus; /// /// Enumerate the list's items. /// /// /// The list's items. /// public override IEnumerable EnumerateItems() { yield break; // StatusV1 is not really a Kubernetes resource list. } /// /// Create a new representing success. /// /// /// The status message. /// /// /// The configured . /// public static StatusV1 Success(string message) { if (String.IsNullOrWhiteSpace(message)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'message'.", nameof(message)); return new StatusV1 { Status = SuccessStatus, Message = message }; } /// /// Create a new representing failure. /// /// /// The status message. /// /// /// An optional machine-parseable reason code indicating the cause of the failure. /// /// /// An optional HTTP status code representing the cause of the failure. /// /// /// The configured . /// public static StatusV1 Failure(string message, string reason = null, int? code = null) { if (String.IsNullOrWhiteSpace(message)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'message'.", nameof(message)); return new StatusV1 { Status = FailureStatus, Message = message, Reason = reason, Code = code }; } } } ================================================ FILE: src/KubeClient/Models/ThirdPartyResourceListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace KubeClient.Models { /// /// ThirdPartyResourceList is a list of ThirdPartyResources. /// [KubeObject("ThirdPartyResourceList", "extensions/v1beta1")] public class ThirdPartyResourceListV1Beta1 : KubeResourceListV1 { /// /// Items is the list of ThirdPartyResources. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/ThirdPartyResourceV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace KubeClient.Models { /// /// A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource types to the API. It consists of one or more Versions of the api. /// [KubeObject("ThirdPartyResource", "extensions/v1beta1")] public class ThirdPartyResourceV1Beta1 : KubeResourceV1 { /// /// Description is the description of this object. /// [JsonProperty("description")] public string Description { get; set; } /// /// Versions are versions for this third party object /// [JsonProperty("versions", NullValueHandling = NullValueHandling.Ignore)] public List Versions { get; set; } = new List(); } } ================================================ FILE: src/KubeClient/Models/TimeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; namespace KubeClient.Models { /// /// No description provided. /// [KubeObject("Time", "v1")] public class TimeV1 { } } ================================================ FILE: src/KubeClient/Models/Yaml.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.IO; using System.Text; using YamlDotNet.Serialization; using KubeResourceClient = KubeClient.ResourceClients.KubeResourceClient; namespace KubeClient.Models { /// /// Helper methods for YAML serialisation / deserialisation of models. /// public static class Yaml { /// /// The buffer size used when reading from / writing to streams. /// const int StreamBufferSize = 1024; /// /// The singleton YAML used by static methods on . /// static readonly IDeserializer YamlDeserialiser = new DeserializerBuilder().IgnoreUnmatchedProperties().Build(); /// /// The singleton YAML used by static methods on . /// static readonly ISerializer YamlSerialiser = new SerializerBuilder().Build(); /// /// The singleton (JSON-compatible) YAML used by static methods on . /// static readonly ISerializer YamlJsonSerialiser = new SerializerBuilder().JsonCompatible().Build(); /// /// The singleton used by static methods on . /// static readonly JsonSerializer JsonSerializer = Newtonsoft.Json.JsonSerializer.Create(KubeResourceClient.SerializerSettings); /// /// Convert YAML to JSON. /// /// /// A containing the YAML to convert. /// /// /// A representing the converted JSON. /// public static JToken ToJson(TextReader yaml) { if (yaml == null) throw new ArgumentNullException(nameof(yaml)); object deserialisedYaml = YamlDeserialiser.Deserialize(yaml); using (MemoryStream buffer = new MemoryStream()) { using (TextWriter jsonWriter = CreateTextWriter(buffer)) { YamlJsonSerialiser.Serialize(jsonWriter, deserialisedYaml); jsonWriter.Flush(); } buffer.Seek(0, SeekOrigin.Begin); using (JsonReader jsonReader = CreateJsonReader(buffer)) { return JToken.Load(jsonReader); } } } /// /// Convert YAML to JSON. /// /// /// A string containing the YAML to convert. /// /// /// A value indicating whether the converted JSON should be formatted (i.e. indented). /// /// /// A string containing the converted JSON. /// public static string ToJson(string yaml, Formatting formatting = Formatting.None) { if (yaml == null) throw new ArgumentNullException(nameof(yaml)); object deserialisedYaml = YamlDeserialiser.Deserialize( new StringReader(yaml) ); using (MemoryStream buffer = new MemoryStream()) { using (TextWriter jsonWriter = CreateTextWriter(buffer)) { YamlJsonSerialiser.Serialize(jsonWriter, deserialisedYaml); jsonWriter.Flush(); } buffer.Seek(0, SeekOrigin.Begin); using (JsonReader jsonReader = CreateJsonReader(buffer)) { return JToken.Load(jsonReader).ToString(formatting); } } } /// /// Deserialise a from YAML. /// /// /// The type of model to deserialise. /// /// /// A containing the YAML. /// /// /// The deserialised . /// /// /// Delegates the actual deserialisation to JSON.NET, after converting the YAML to JSON. /// /// Not particularly efficient, but safe and reliable. /// public static TModel Deserialize(TextReader yaml) { if (yaml == null) throw new ArgumentNullException(nameof(yaml)); object deserialisedYaml = YamlDeserialiser.Deserialize(yaml); using (MemoryStream buffer = new MemoryStream()) { using (JsonWriter jsonWriter = CreateJsonWriter(buffer)) { JsonSerializer.Serialize(jsonWriter, deserialisedYaml); jsonWriter.Flush(); } buffer.Seek(0, SeekOrigin.Begin); using (JsonReader jsonReader = CreateJsonReader(buffer)) { return JsonSerializer.Deserialize(jsonReader); } } } /// /// Serialise a model to YAML. /// /// /// The model to serialise. /// /// /// A that will receive the serialised YAML. /// /// /// Delegates the actual deserialisation to JSON.NET, before converting the JSON to YAML. /// /// Not particularly efficient, but safe and reliable. /// public static void Serialize(object model, TextWriter writer) { if (model == null) throw new ArgumentNullException(nameof(model)); if (writer == null) throw new ArgumentNullException(nameof(writer)); object serializableModel; using (MemoryStream buffer = new MemoryStream()) { using (JsonWriter jsonWriter = CreateJsonWriter(buffer)) { JsonSerializer.Serialize(jsonWriter, model); jsonWriter.Flush(); } buffer.Seek(0, SeekOrigin.Begin); using (TextReader yamlReader = CreateTextReader(buffer)) { serializableModel = YamlDeserialiser.Deserialize(yamlReader); } } YamlSerialiser.Serialize(writer, serializableModel); } /// /// Create a that reads from the specified stream. /// /// /// The target stream. /// /// /// The new . /// static JsonReader CreateJsonReader(Stream stream) { if (stream == null) throw new ArgumentNullException(nameof(stream)); TextReader textReader = null; JsonReader jsonReader = null; try { textReader = CreateTextReader(stream); jsonReader = new JsonTextReader(textReader); } catch (Exception) { using (jsonReader) using (textReader) { throw; } } return jsonReader; } /// /// Create a that writes to the specified stream. /// /// /// The target stream. /// /// /// The new . /// static JsonWriter CreateJsonWriter(Stream stream) { if (stream == null) throw new ArgumentNullException(nameof(stream)); TextWriter textWriter = null; JsonWriter jsonWriter = null; try { textWriter = CreateTextWriter(stream); jsonWriter = new JsonTextWriter(textWriter); } catch (Exception) { using (jsonWriter) using (textWriter) { throw; } } return jsonWriter; } /// /// Create a that reads from the specified stream. /// /// /// The target stream. /// /// /// The new . /// static TextReader CreateTextReader(Stream stream) { if (stream == null) throw new ArgumentNullException(nameof(stream)); return new StreamReader(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks: false, bufferSize: StreamBufferSize, leaveOpen: true); } /// /// Create a that writes to the specified stream. /// /// /// The target stream. /// /// /// The new . /// static TextWriter CreateTextWriter(Stream stream) { if (stream == null) throw new ArgumentNullException(nameof(stream)); return new StreamWriter(stream, Encoding.UTF8, bufferSize: StreamBufferSize, leaveOpen: true); } } } ================================================ FILE: src/KubeClient/Models/generated/APIGroupListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. /// public partial class APIGroupListV1 : KubeObjectV1 { /// /// groups is a list of APIGroup. /// [YamlMember(Alias = "groups")] [JsonProperty("groups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Groups { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/APIGroupV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIGroup contains the name, the supported versions, and the preferred version of a group. /// public partial class APIGroupV1 : KubeObjectV1 { /// /// name is the name of the group. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// preferredVersion is the version preferred by the API server, which probably is the storage version. /// [YamlMember(Alias = "preferredVersion")] [JsonProperty("preferredVersion", NullValueHandling = NullValueHandling.Ignore)] public GroupVersionForDiscoveryV1 PreferredVersion { get; set; } /// /// a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. /// [YamlMember(Alias = "serverAddressByClientCIDRs")] [JsonProperty("serverAddressByClientCIDRs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ServerAddressByClientCIDRs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeServerAddressByClientCIDRs() => ServerAddressByClientCIDRs.Count > 0; /// /// versions are the versions supported in this group. /// [YamlMember(Alias = "versions")] [JsonProperty("versions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Versions { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/APIResourceListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced. /// public partial class APIResourceListV1 : KubeObjectV1 { /// /// groupVersion is the group and version this APIResourceList is for. /// [YamlMember(Alias = "groupVersion")] [JsonProperty("groupVersion", NullValueHandling = NullValueHandling.Include)] public string GroupVersion { get; set; } /// /// resources contains the name of the resources and if they are namespaced. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/APIResourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIResource specifies the name of a resource and whether it is namespaced. /// public partial class APIResourceV1 { /// /// kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// namespaced indicates if a resource is namespaced or not. /// [YamlMember(Alias = "namespaced")] [JsonProperty("namespaced", NullValueHandling = NullValueHandling.Include)] public bool Namespaced { get; set; } /// /// name is the plural name of the resource. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// 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. /// [YamlMember(Alias = "singularName")] [JsonProperty("singularName", NullValueHandling = NullValueHandling.Include)] public string SingularName { get; set; } /// /// The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates. /// [YamlMember(Alias = "storageVersionHash")] [JsonProperty("storageVersionHash", NullValueHandling = NullValueHandling.Ignore)] public string StorageVersionHash { get; set; } /// /// version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)". /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// 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". /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } /// /// categories is a list of the grouped resources this resource belongs to (e.g. 'all') /// [YamlMember(Alias = "categories")] [JsonProperty("categories", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Categories { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCategories() => Categories.Count > 0; /// /// shortNames is a list of suggested short names of the resource. /// [YamlMember(Alias = "shortNames")] [JsonProperty("shortNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ShortNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeShortNames() => ShortNames.Count > 0; /// /// verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy) /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIServiceCondition describes the state of an APIService at a particular point /// public partial class APIServiceConditionV1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// Human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type is the type of the condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status is the status of the condition. Can be True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class APIServiceConditionV1Beta1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// Human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type is the type of the condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status is the status of the condition. Can be True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIServiceList is a list of APIService objects. /// [KubeListItem("APIService", "apiregistration.k8s.io/v1")] [KubeObject("APIServiceList", "apiregistration.k8s.io/v1")] public partial class APIServiceListV1 : KubeResourceListV1 { /// /// Items is the list of APIService /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIServiceList is a list of APIService objects. /// [KubeListItem("APIService", "apiregistration.k8s.io/v1beta1")] [KubeObject("APIServiceList", "apiregistration.k8s.io/v1beta1")] public partial class APIServiceListV1Beta1 : KubeResourceListV1 { /// /// Description not provided. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification. /// public partial class APIServiceSpecV1 { /// /// CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used. /// [YamlMember(Alias = "caBundle")] [JsonProperty("caBundle", NullValueHandling = NullValueHandling.Ignore)] public string CaBundle { get; set; } /// /// Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled. /// [YamlMember(Alias = "service")] [JsonProperty("service", NullValueHandling = NullValueHandling.Ignore)] public ServiceReferenceV1 Service { get; set; } /// /// GroupPriorityMinimum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMinimum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s /// [YamlMember(Alias = "groupPriorityMinimum")] [JsonProperty("groupPriorityMinimum", NullValueHandling = NullValueHandling.Include)] public int GroupPriorityMinimum { get; set; } /// /// Version is the API version this server hosts. For example, "v1" /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// Group is the API group name this server hosts /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } /// /// InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead. /// [YamlMember(Alias = "insecureSkipTLSVerify")] [JsonProperty("insecureSkipTLSVerify", NullValueHandling = NullValueHandling.Ignore)] public bool? InsecureSkipTLSVerify { get; set; } /// /// VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10. /// [YamlMember(Alias = "versionPriority")] [JsonProperty("versionPriority", NullValueHandling = NullValueHandling.Include)] public int VersionPriority { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification. /// public partial class APIServiceSpecV1Beta1 { /// /// CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. /// [YamlMember(Alias = "caBundle")] [JsonProperty("caBundle", NullValueHandling = NullValueHandling.Ignore)] public string CaBundle { get; set; } /// /// Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled. /// [YamlMember(Alias = "service")] [JsonProperty("service", NullValueHandling = NullValueHandling.Include)] public ServiceReferenceV1Beta1 Service { get; set; } /// /// GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s /// [YamlMember(Alias = "groupPriorityMinimum")] [JsonProperty("groupPriorityMinimum", NullValueHandling = NullValueHandling.Include)] public int GroupPriorityMinimum { get; set; } /// /// Version is the API version this server hosts. For example, "v1" /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// Group is the API group name this server hosts /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } /// /// InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead. /// [YamlMember(Alias = "insecureSkipTLSVerify")] [JsonProperty("insecureSkipTLSVerify", NullValueHandling = NullValueHandling.Ignore)] public bool? InsecureSkipTLSVerify { get; set; } /// /// VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10. /// [YamlMember(Alias = "versionPriority")] [JsonProperty("versionPriority", NullValueHandling = NullValueHandling.Include)] public int VersionPriority { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIServiceStatus contains derived information about an API server /// public partial class APIServiceStatusV1 { /// /// Current service state of apiService. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIServiceStatus contains derived information about an API server /// public partial class APIServiceStatusV1Beta1 { /// /// Current service state of apiService. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIService represents a server for a particular GroupVersion. Name must be "version.group". /// [KubeObject("APIService", "apiregistration.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/apiregistration.k8s.io/v1/apiservices")] [KubeApi(KubeAction.Create, "apis/apiregistration.k8s.io/v1/apiservices")] [KubeApi(KubeAction.Get, "apis/apiregistration.k8s.io/v1/apiservices/{name}")] [KubeApi(KubeAction.Patch, "apis/apiregistration.k8s.io/v1/apiservices/{name}")] [KubeApi(KubeAction.Delete, "apis/apiregistration.k8s.io/v1/apiservices/{name}")] [KubeApi(KubeAction.Update, "apis/apiregistration.k8s.io/v1/apiservices/{name}")] [KubeApi(KubeAction.WatchList, "apis/apiregistration.k8s.io/v1/watch/apiservices")] [KubeApi(KubeAction.DeleteCollection, "apis/apiregistration.k8s.io/v1/apiservices")] [KubeApi(KubeAction.Get, "apis/apiregistration.k8s.io/v1/apiservices/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apiregistration.k8s.io/v1/watch/apiservices/{name}")] [KubeApi(KubeAction.Patch, "apis/apiregistration.k8s.io/v1/apiservices/{name}/status")] [KubeApi(KubeAction.Update, "apis/apiregistration.k8s.io/v1/apiservices/{name}/status")] public partial class APIServiceV1 : KubeResourceV1 { /// /// Spec contains information for locating and communicating with a server /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public APIServiceSpecV1 Spec { get; set; } /// /// Status contains derived information about an API server /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public APIServiceStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/APIServiceV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIService represents a server for a particular GroupVersion. Name must be "version.group". /// [KubeObject("APIService", "apiregistration.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/apiregistration.k8s.io/v1beta1/apiservices")] [KubeApi(KubeAction.Create, "apis/apiregistration.k8s.io/v1beta1/apiservices")] [KubeApi(KubeAction.Get, "apis/apiregistration.k8s.io/v1beta1/apiservices/{name}")] [KubeApi(KubeAction.Patch, "apis/apiregistration.k8s.io/v1beta1/apiservices/{name}")] [KubeApi(KubeAction.Delete, "apis/apiregistration.k8s.io/v1beta1/apiservices/{name}")] [KubeApi(KubeAction.Update, "apis/apiregistration.k8s.io/v1beta1/apiservices/{name}")] [KubeApi(KubeAction.WatchList, "apis/apiregistration.k8s.io/v1beta1/watch/apiservices")] [KubeApi(KubeAction.DeleteCollection, "apis/apiregistration.k8s.io/v1beta1/apiservices")] [KubeApi(KubeAction.Get, "apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}")] [KubeApi(KubeAction.Patch, "apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status")] [KubeApi(KubeAction.Update, "apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status")] public partial class APIServiceV1Beta1 : KubeResourceV1 { /// /// Spec contains information for locating and communicating with a server /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public APIServiceSpecV1Beta1 Spec { get; set; } /// /// Status contains derived information about an API server /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public APIServiceStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/APIVersionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// An APIVersion represents a single concrete version of an object model. /// public partial class APIVersionV1Beta1 { /// /// Name of this version (e.g. 'v1'). /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/APIVersionsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API. /// public partial class APIVersionsV1 : KubeObjectV1 { /// /// a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. /// [YamlMember(Alias = "serverAddressByClientCIDRs")] [JsonProperty("serverAddressByClientCIDRs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ServerAddressByClientCIDRs { get; } = new List(); /// /// versions are the api versions that are available. /// [YamlMember(Alias = "versions")] [JsonProperty("versions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Versions { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/AWSElasticBlockStoreVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Persistent Disk resource in AWS. /// /// An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling. /// public partial class AWSElasticBlockStoreVolumeSourceV1 { /// /// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [YamlMember(Alias = "volumeID")] [JsonProperty("volumeID", NullValueHandling = NullValueHandling.Include)] public string VolumeID { get; set; } /// /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). /// [YamlMember(Alias = "partition")] [JsonProperty("partition", NullValueHandling = NullValueHandling.Ignore)] public int? Partition { get; set; } /// /// readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AffinityV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Affinity is a group of affinity scheduling rules. /// public partial class AffinityV1 { /// /// Describes node affinity scheduling rules for the pod. /// [YamlMember(Alias = "nodeAffinity")] [JsonProperty("nodeAffinity", NullValueHandling = NullValueHandling.Ignore)] public NodeAffinityV1 NodeAffinity { get; set; } /// /// Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). /// [YamlMember(Alias = "podAffinity")] [JsonProperty("podAffinity", NullValueHandling = NullValueHandling.Ignore)] public PodAffinityV1 PodAffinity { get; set; } /// /// Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). /// [YamlMember(Alias = "podAntiAffinity")] [JsonProperty("podAntiAffinity", NullValueHandling = NullValueHandling.Ignore)] public PodAntiAffinityV1 PodAntiAffinity { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AggregationRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole /// public partial class AggregationRuleV1 { /// /// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added /// [YamlMember(Alias = "clusterRoleSelectors")] [JsonProperty("clusterRoleSelectors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ClusterRoleSelectors { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeClusterRoleSelectors() => ClusterRoleSelectors.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/AggregationRuleV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole /// public partial class AggregationRuleV1Alpha1 { /// /// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added /// [YamlMember(Alias = "clusterRoleSelectors")] [JsonProperty("clusterRoleSelectors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ClusterRoleSelectors { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeClusterRoleSelectors() => ClusterRoleSelectors.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/AggregationRuleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole /// public partial class AggregationRuleV1Beta1 { /// /// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added /// [YamlMember(Alias = "clusterRoleSelectors")] [JsonProperty("clusterRoleSelectors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ClusterRoleSelectors { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeClusterRoleSelectors() => ClusterRoleSelectors.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/AllocationResultV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AllocationResult contains attributes of an allocated resource. /// public partial class AllocationResultV1Alpha3 { /// /// Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver. /// /// A driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results. /// /// This is an alpha field and requires enabling the DRAControlPlaneController feature gate. /// [YamlMember(Alias = "controller")] [JsonProperty("controller", NullValueHandling = NullValueHandling.Ignore)] public string Controller { get; set; } /// /// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. /// [YamlMember(Alias = "nodeSelector")] [JsonProperty("nodeSelector", NullValueHandling = NullValueHandling.Ignore)] public NodeSelectorV1 NodeSelector { get; set; } /// /// Devices is the result of allocating devices. /// [YamlMember(Alias = "devices")] [JsonProperty("devices", NullValueHandling = NullValueHandling.Ignore)] public DeviceAllocationResultV1Alpha3 Devices { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AllowedFlexVolumeV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AllowedFlexVolume represents a single Flexvolume that is allowed to be used. /// public partial class AllowedFlexVolumeV1Beta1 { /// /// driver is the name of the Flexvolume driver. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AllowedHostPathV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined. /// public partial class AllowedHostPathV1Beta1 { /// /// pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path. /// /// Examples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo` /// [YamlMember(Alias = "pathPrefix")] [JsonProperty("pathPrefix", NullValueHandling = NullValueHandling.Ignore)] public string PathPrefix { get; set; } /// /// when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AppArmorProfileV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AppArmorProfile defines a pod or container's AppArmor settings. /// public partial class AppArmorProfileV1 { /// /// 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". /// [YamlMember(Alias = "localhostProfile")] [JsonProperty("localhostProfile", NullValueHandling = NullValueHandling.Ignore)] public string LocalhostProfile { get; set; } /// /// 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. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AttachedVolumeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AttachedVolume describes a volume attached to a node /// public partial class AttachedVolumeV1 { /// /// Name of the attached volume /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// DevicePath represents the device path where the volume should be available /// [YamlMember(Alias = "devicePath")] [JsonProperty("devicePath", NullValueHandling = NullValueHandling.Include)] public string DevicePath { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AuditAnnotationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AuditAnnotation describes how to produce an audit annotation for an API request. /// public partial class AuditAnnotationV1 { /// /// 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. /// [YamlMember(Alias = "valueExpression")] [JsonProperty("valueExpression", NullValueHandling = NullValueHandling.Include)] public string ValueExpression { get; set; } /// /// 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. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AuditAnnotationV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AuditAnnotation describes how to produce an audit annotation for an API request. /// public partial class AuditAnnotationV1Alpha1 { /// /// 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. /// [YamlMember(Alias = "valueExpression")] [JsonProperty("valueExpression", NullValueHandling = NullValueHandling.Include)] public string ValueExpression { get; set; } /// /// 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. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AuditAnnotationV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AuditAnnotation describes how to produce an audit annotation for an API request. /// public partial class AuditAnnotationV1Beta1 { /// /// 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. /// [YamlMember(Alias = "valueExpression")] [JsonProperty("valueExpression", NullValueHandling = NullValueHandling.Include)] public string ValueExpression { get; set; } /// /// 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. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AzureDiskVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. /// public partial class AzureDiskVolumeSourceV1 { /// /// diskURI is the URI of data disk in the blob storage /// [YamlMember(Alias = "diskURI")] [JsonProperty("diskURI", NullValueHandling = NullValueHandling.Include)] public string DiskURI { get; set; } /// /// kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Ignore)] public string Kind { get; set; } /// /// cachingMode is the Host Caching mode: None, Read Only, Read Write. /// [YamlMember(Alias = "cachingMode")] [JsonProperty("cachingMode", NullValueHandling = NullValueHandling.Ignore)] public string CachingMode { get; set; } /// /// diskName is the Name of the data disk in the blob storage /// [YamlMember(Alias = "diskName")] [JsonProperty("diskName", NullValueHandling = NullValueHandling.Include)] public string DiskName { get; set; } /// /// fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AzureFilePersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. /// public partial class AzureFilePersistentVolumeSourceV1 { /// /// secretName is the name of secret that contains Azure Storage Account Name and Key /// [YamlMember(Alias = "secretName")] [JsonProperty("secretName", NullValueHandling = NullValueHandling.Include)] public string SecretName { get; set; } /// /// secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod /// [YamlMember(Alias = "secretNamespace")] [JsonProperty("secretNamespace", NullValueHandling = NullValueHandling.Ignore)] public string SecretNamespace { get; set; } /// /// shareName is the azure Share Name /// [YamlMember(Alias = "shareName")] [JsonProperty("shareName", NullValueHandling = NullValueHandling.Include)] public string ShareName { get; set; } /// /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/AzureFileVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. /// public partial class AzureFileVolumeSourceV1 { /// /// secretName is the name of secret that contains Azure Storage Account Name and Key /// [YamlMember(Alias = "secretName")] [JsonProperty("secretName", NullValueHandling = NullValueHandling.Include)] public string SecretName { get; set; } /// /// shareName is the azure share Name /// [YamlMember(Alias = "shareName")] [JsonProperty("shareName", NullValueHandling = NullValueHandling.Include)] public string ShareName { get; set; } /// /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/BasicDeviceV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// BasicDevice defines one device instance. /// public partial class BasicDeviceV1Alpha3 { /// /// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. /// /// The maximum number of attributes and capacities combined is 32. /// [YamlMember(Alias = "attributes")] [JsonProperty("attributes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Attributes { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAttributes() => Attributes.Count > 0; /// /// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. /// /// The maximum number of attributes and capacities combined is 32. /// [YamlMember(Alias = "capacity")] [JsonProperty("capacity", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Capacity { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCapacity() => Capacity.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/BindingV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. /// [KubeObject("Binding", "v1")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/bindings")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/pods/{name}/binding")] public partial class BindingV1 : KubeResourceV1 { /// /// The target object that you want to bind to the standard object. /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public ObjectReferenceV1 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/BoundObjectReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// BoundObjectReference is a reference to an object that a token is bound to. /// public partial class BoundObjectReferenceV1 : KubeObjectV1 { /// /// UID of the referent. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// Name of the referent. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CELDeviceSelectorV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CELDeviceSelector contains a CEL expression for selecting a device. /// public partial class CELDeviceSelectorV1Alpha3 { /// /// Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. /// /// The expression's input is an object named "device", which carries the following properties: /// - driver (string): the name of the driver which defines this device. /// - attributes (map[string]object): the device's attributes, grouped by prefix /// (e.g. device.attributes["dra.example.com"] evaluates to an object with all /// of the attributes which were prefixed by "dra.example.com". /// - capacity (map[string]object): the device's capacities, grouped by prefix. /// /// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: /// /// device.driver /// device.attributes["dra.example.com"].model /// device.attributes["ext.example.com"].family /// device.capacity["dra.example.com"].modules /// /// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. /// /// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. /// /// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. /// /// A robust expression should check for the existence of attributes before referencing them. /// /// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: /// /// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CSIDriverListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSIDriverList is a collection of CSIDriver objects. /// [KubeListItem("CSIDriver", "storage.k8s.io/v1")] [KubeObject("CSIDriverList", "storage.k8s.io/v1")] public partial class CSIDriverListV1 : KubeResourceListV1 { /// /// items is the list of CSIDriver /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CSIDriverSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSIDriverSpec is the specification of a CSIDriver. /// public partial class CSIDriverSpecV1 { /// /// 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. /// [YamlMember(Alias = "attachRequired")] [JsonProperty("attachRequired", NullValueHandling = NullValueHandling.Ignore)] public bool? AttachRequired { get; set; } /// /// 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. /// [YamlMember(Alias = "requiresRepublish")] [JsonProperty("requiresRepublish", NullValueHandling = NullValueHandling.Ignore)] public bool? RequiresRepublish { get; set; } /// /// tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: "csi.storage.k8s.io/serviceAccount.tokens": { /// "<audience>": { /// "token": <token>, /// "expirationTimestamp": <expiration timestamp in RFC3339>, /// }, /// ... /// } /// /// Note: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically. /// [YamlMember(Alias = "tokenRequests")] [JsonProperty("tokenRequests", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List TokenRequests { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTokenRequests() => TokenRequests.Count > 0; /// /// volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is "Persistent", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. /// /// The other mode is "Ephemeral". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. /// /// For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. /// /// This field is beta. This field is immutable. /// [YamlMember(Alias = "volumeLifecycleModes")] [JsonProperty("volumeLifecycleModes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeLifecycleModes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeLifecycleModes() => VolumeLifecycleModes.Count > 0; /// /// 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. /// [YamlMember(Alias = "podInfoOnMount")] [JsonProperty("podInfoOnMount", NullValueHandling = NullValueHandling.Ignore)] public bool? PodInfoOnMount { get; set; } /// /// 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". /// [YamlMember(Alias = "seLinuxMount")] [JsonProperty("seLinuxMount", NullValueHandling = NullValueHandling.Ignore)] public bool? SeLinuxMount { get; set; } /// /// 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. /// [YamlMember(Alias = "fsGroupPolicy")] [JsonProperty("fsGroupPolicy", NullValueHandling = NullValueHandling.Ignore)] public string FsGroupPolicy { get; set; } /// /// 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. /// [YamlMember(Alias = "storageCapacity")] [JsonProperty("storageCapacity", NullValueHandling = NullValueHandling.Ignore)] public bool? StorageCapacity { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CSIDriverV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced. /// [KubeObject("CSIDriver", "storage.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1/csidrivers")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1/csidrivers")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1/csidrivers/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1/csidrivers/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1/csidrivers/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1/csidrivers/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1/watch/csidrivers")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1/csidrivers")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1/watch/csidrivers/{name}")] public partial class CSIDriverV1 : KubeResourceV1 { /// /// spec represents the specification of the CSI Driver. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public CSIDriverSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CSINodeDriverV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSINodeDriver holds information about the specification of one CSI driver installed on a node /// public partial class CSINodeDriverV1 { /// /// nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as "node1", but the storage system may refer to the same node as "nodeA". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. "nodeA" instead of "node1". This field is required. /// [YamlMember(Alias = "nodeID")] [JsonProperty("nodeID", NullValueHandling = NullValueHandling.Include)] public string NodeID { get; set; } /// /// allocatable represents the volume resources of a node that are available for scheduling. This field is beta. /// [YamlMember(Alias = "allocatable")] [JsonProperty("allocatable", NullValueHandling = NullValueHandling.Ignore)] public VolumeNodeResourcesV1 Allocatable { get; set; } /// /// name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. "company.com/zone", "company.com/region"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology. /// [YamlMember(Alias = "topologyKeys")] [JsonProperty("topologyKeys", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List TopologyKeys { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTopologyKeys() => TopologyKeys.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CSINodeListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSINodeList is a collection of CSINode objects. /// [KubeListItem("CSINode", "storage.k8s.io/v1")] [KubeObject("CSINodeList", "storage.k8s.io/v1")] public partial class CSINodeListV1 : KubeResourceListV1 { /// /// items is the list of CSINode /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CSINodeSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSINodeSpec holds information about the specification of all CSI drivers installed on a node /// public partial class CSINodeSpecV1 { /// /// drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "drivers")] [JsonProperty("drivers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Drivers { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CSINodeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object. /// [KubeObject("CSINode", "storage.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1/csinodes")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1/csinodes")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1/csinodes/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1/csinodes/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1/csinodes/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1/csinodes/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1/watch/csinodes")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1/csinodes")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1/watch/csinodes/{name}")] public partial class CSINodeV1 : KubeResourceV1 { /// /// spec is the specification of CSINode /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public CSINodeSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CSIPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents storage that is managed by an external CSI volume driver (Beta feature) /// public partial class CSIPersistentVolumeSourceV1 { /// /// fsType to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required. /// [YamlMember(Alias = "volumeHandle")] [JsonProperty("volumeHandle", NullValueHandling = NullValueHandling.Include)] public string VolumeHandle { get; set; } /// /// controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. /// [YamlMember(Alias = "controllerExpandSecretRef")] [JsonProperty("controllerExpandSecretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 ControllerExpandSecretRef { get; set; } /// /// controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. /// [YamlMember(Alias = "controllerPublishSecretRef")] [JsonProperty("controllerPublishSecretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 ControllerPublishSecretRef { get; set; } /// /// nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed. /// [YamlMember(Alias = "nodeExpandSecretRef")] [JsonProperty("nodeExpandSecretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 NodeExpandSecretRef { get; set; } /// /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. /// [YamlMember(Alias = "nodePublishSecretRef")] [JsonProperty("nodePublishSecretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 NodePublishSecretRef { get; set; } /// /// nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. /// [YamlMember(Alias = "nodeStageSecretRef")] [JsonProperty("nodeStageSecretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 NodeStageSecretRef { get; set; } /// /// driver is the name of the driver to use for this volume. Required. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } /// /// volumeAttributes of the volume to publish. /// [YamlMember(Alias = "volumeAttributes")] [JsonProperty("volumeAttributes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary VolumeAttributes { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeAttributes() => VolumeAttributes.Count > 0; /// /// readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write). /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CSIStorageCapacityListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSIStorageCapacityList is a collection of CSIStorageCapacity objects. /// [KubeListItem("CSIStorageCapacity", "storage.k8s.io/v1")] [KubeObject("CSIStorageCapacityList", "storage.k8s.io/v1")] public partial class CSIStorageCapacityListV1 : KubeResourceListV1 { /// /// items is the list of CSIStorageCapacity objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CSIStorageCapacityV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes. /// /// For example this can express things like: - StorageClass "standard" has "1234 GiB" available in "topology.kubernetes.io/zone=us-east1" - StorageClass "localssd" has "10 GiB" available in "kubernetes.io/hostname=knode-abc123" /// /// The following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero /// /// The producer of these objects can decide which approach is more suitable. /// /// They are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node. /// [KubeObject("CSIStorageCapacity", "storage.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1/csistoragecapacities")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1/watch/csistoragecapacities")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities/{name}")] public partial class CSIStorageCapacityV1 : KubeResourceV1 { /// /// maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields. /// /// This is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim. /// [YamlMember(Alias = "maximumVolumeSize")] [JsonProperty("maximumVolumeSize", NullValueHandling = NullValueHandling.Ignore)] public string MaximumVolumeSize { get; set; } /// /// storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable. /// [YamlMember(Alias = "storageClassName")] [JsonProperty("storageClassName", NullValueHandling = NullValueHandling.Include)] public string StorageClassName { get; set; } /// /// capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields. /// /// The semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable. /// [YamlMember(Alias = "capacity")] [JsonProperty("capacity", NullValueHandling = NullValueHandling.Ignore)] public string Capacity { get; set; } /// /// nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable. /// [YamlMember(Alias = "nodeTopology")] [JsonProperty("nodeTopology", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NodeTopology { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CSIVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a source location of a volume to mount, managed by an external CSI driver /// public partial class CSIVolumeSourceV1 { /// /// fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. /// [YamlMember(Alias = "nodePublishSecretRef")] [JsonProperty("nodePublishSecretRef", NullValueHandling = NullValueHandling.Ignore)] public LocalObjectReferenceV1 NodePublishSecretRef { get; set; } /// /// driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } /// /// volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. /// [YamlMember(Alias = "volumeAttributes")] [JsonProperty("volumeAttributes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary VolumeAttributes { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeAttributes() => VolumeAttributes.Count > 0; /// /// readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CapabilitiesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Adds and removes POSIX capabilities from running containers. /// public partial class CapabilitiesV1 { /// /// Added capabilities /// [YamlMember(Alias = "add")] [JsonProperty("add", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Add { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAdd() => Add.Count > 0; /// /// Removed capabilities /// [YamlMember(Alias = "drop")] [JsonProperty("drop", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Drop { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDrop() => Drop.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CephFSPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling. /// public partial class CephFSPersistentVolumeSourceV1 { /// /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "secretFile")] [JsonProperty("secretFile", NullValueHandling = NullValueHandling.Ignore)] public string SecretFile { get; set; } /// /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 SecretRef { get; set; } /// /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] public string Path { get; set; } /// /// user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } /// /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "monitors")] [JsonProperty("monitors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Monitors { get; } = new List(); /// /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CephFSVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling. /// public partial class CephFSVolumeSourceV1 { /// /// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "secretFile")] [JsonProperty("secretFile", NullValueHandling = NullValueHandling.Ignore)] public string SecretFile { get; set; } /// /// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public LocalObjectReferenceV1 SecretRef { get; set; } /// /// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is / /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] public string Path { get; set; } /// /// user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } /// /// monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "monitors")] [JsonProperty("monitors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Monitors { get; } = new List(); /// /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object /// public partial class CertificateSigningRequestConditionV1 { /// /// lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// lastUpdateTime is the time of the last update to this condition /// [YamlMember(Alias = "lastUpdateTime")] [JsonProperty("lastUpdateTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastUpdateTime { get; set; } /// /// message contains a human readable message with details about the request state /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// type of the condition. Known conditions are "Approved", "Denied", and "Failed". /// /// An "Approved" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer. /// /// A "Denied" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer. /// /// A "Failed" condition is added via the /status subresource, indicating the signer failed to issue the certificate. /// /// Approved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added. /// /// Only one condition of a given type is allowed. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// reason indicates a brief reason for the request state /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be "False" or "Unknown". /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class CertificateSigningRequestConditionV1Beta1 { /// /// timestamp for the last update to this condition /// [YamlMember(Alias = "lastUpdateTime")] [JsonProperty("lastUpdateTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastUpdateTime { get; set; } /// /// human readable message with details about the request state /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// request approval state, currently Approved or Denied. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// brief reason for the request state /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CertificateSigningRequestList is a collection of CertificateSigningRequest objects /// [KubeListItem("CertificateSigningRequest", "certificates.k8s.io/v1")] [KubeObject("CertificateSigningRequestList", "certificates.k8s.io/v1")] public partial class CertificateSigningRequestListV1 : KubeResourceListV1 { /// /// items is a collection of CertificateSigningRequest objects /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// [KubeListItem("CertificateSigningRequest", "certificates.k8s.io/v1beta1")] [KubeObject("CertificateSigningRequestList", "certificates.k8s.io/v1beta1")] public partial class CertificateSigningRequestListV1Beta1 : KubeResourceListV1 { /// /// Description not provided. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CertificateSigningRequestSpec contains the certificate request. /// public partial class CertificateSigningRequestSpecV1 { /// /// extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable. /// [YamlMember(Alias = "extra")] [JsonProperty("extra", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary> Extra { get; } = new Dictionary>(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExtra() => Extra.Count > 0; /// /// uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// signerName indicates the requested signer, and is a qualified name. /// /// List/watch requests for CertificateSigningRequests can filter on this field using a "spec.signerName=NAME" fieldSelector. /// /// Well-known Kubernetes signers are: /// 1. "kubernetes.io/kube-apiserver-client": issues client certificates that can be used to authenticate to kube-apiserver. /// Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the "csrsigning" controller in kube-controller-manager. /// 2. "kubernetes.io/kube-apiserver-client-kubelet": issues client certificates that kubelets use to authenticate to kube-apiserver. /// Requests for this signer can be auto-approved by the "csrapproving" controller in kube-controller-manager, and can be issued by the "csrsigning" controller in kube-controller-manager. /// 3. "kubernetes.io/kubelet-serving" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely. /// Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the "csrsigning" controller in kube-controller-manager. /// /// More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers /// /// Custom signerNames can also be specified. The signer defines: /// 1. Trust distribution: how trust (CA bundles) are distributed. /// 2. Permitted subjects: and behavior when a disallowed subject is requested. /// 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested. /// 4. Required, permitted, or forbidden key usages / extended key usages. /// 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin. /// 6. Whether or not requests for CA certificates are allowed. /// [YamlMember(Alias = "signerName")] [JsonProperty("signerName", NullValueHandling = NullValueHandling.Include)] public string SignerName { get; set; } /// /// username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable. /// [YamlMember(Alias = "username")] [JsonProperty("username", NullValueHandling = NullValueHandling.Ignore)] public string Username { get; set; } /// /// expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration. /// /// The v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager. /// /// Certificate signers may not honor this field for various reasons: /// /// 1. Old signer that is unaware of the field (such as the in-tree /// implementations prior to v1.22) /// 2. Signer whose configured maximum is shorter than the requested duration /// 3. Signer whose configured minimum is longer than the requested duration /// /// The minimum valid value for expirationSeconds is 600, i.e. 10 minutes. /// [YamlMember(Alias = "expirationSeconds")] [JsonProperty("expirationSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? ExpirationSeconds { get; set; } /// /// groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable. /// [YamlMember(Alias = "groups")] [JsonProperty("groups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Groups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeGroups() => Groups.Count > 0; /// /// usages specifies a set of key usages requested in the issued certificate. /// /// Requests for TLS client certificates typically request: "digital signature", "key encipherment", "client auth". /// /// Requests for TLS serving certificates typically request: "key encipherment", "digital signature", "server auth". /// /// Valid values are: /// "signing", "digital signature", "content commitment", /// "key encipherment", "key agreement", "data encipherment", /// "cert sign", "crl sign", "encipher only", "decipher only", "any", /// "server auth", "client auth", /// "code signing", "email protection", "s/mime", /// "ipsec end system", "ipsec tunnel", "ipsec user", /// "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc" /// [YamlMember(Alias = "usages")] [JsonProperty("usages", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Usages { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeUsages() => Usages.Count > 0; /// /// request contains an x509 certificate signing request encoded in a "CERTIFICATE REQUEST" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded. /// [YamlMember(Alias = "request")] [JsonProperty("request", NullValueHandling = NullValueHandling.Include)] public string Request { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users. /// public partial class CertificateSigningRequestSpecV1Beta1 { /// /// Extra information about the requesting user. See user.Info interface for details. /// [YamlMember(Alias = "extra")] [JsonProperty("extra", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary> Extra { get; } = new Dictionary>(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExtra() => Extra.Count > 0; /// /// UID information about the requesting user. See user.Info interface for details. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// Information about the requesting user. See user.Info interface for details. /// [YamlMember(Alias = "username")] [JsonProperty("username", NullValueHandling = NullValueHandling.Ignore)] public string Username { get; set; } /// /// Group information about the requesting user. See user.Info interface for details. /// [YamlMember(Alias = "groups")] [JsonProperty("groups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Groups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeGroups() => Groups.Count > 0; /// /// allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 /// https://tools.ietf.org/html/rfc5280#section-4.2.1.12 /// [YamlMember(Alias = "usages")] [JsonProperty("usages", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Usages { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeUsages() => Usages.Count > 0; /// /// Base64-encoded PKCS#10 CSR data /// [YamlMember(Alias = "request")] [JsonProperty("request", NullValueHandling = NullValueHandling.Include)] public string Request { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate. /// public partial class CertificateSigningRequestStatusV1 { /// /// certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable. /// /// If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. /// /// Validation requirements: /// 1. certificate must contain one or more PEM blocks. /// 2. All PEM blocks must have the "CERTIFICATE" label, contain no headers, and the encoded data /// must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280. /// 3. Non-PEM content may appear before or after the "CERTIFICATE" PEM blocks and is unvalidated, /// to allow for explanatory text as described in section 5.2 of RFC7468. /// /// If more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. /// /// The certificate is encoded in PEM format. /// /// When serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of: /// /// base64( /// -----BEGIN CERTIFICATE----- /// ... /// -----END CERTIFICATE----- /// ) /// [YamlMember(Alias = "certificate")] [JsonProperty("certificate", NullValueHandling = NullValueHandling.Ignore)] public string Certificate { get; set; } /// /// conditions applied to the request. Known conditions are "Approved", "Denied", and "Failed". /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class CertificateSigningRequestStatusV1Beta1 { /// /// If request was approved, the controller will place the issued certificate here. /// [YamlMember(Alias = "certificate")] [JsonProperty("certificate", NullValueHandling = NullValueHandling.Ignore)] public string Certificate { get; set; } /// /// Conditions applied to the request, such as approval or denial. /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued. /// /// Kubelets use this API to obtain: /// 1. client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client-kubelet" signerName). /// 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the "kubernetes.io/kubelet-serving" signerName). /// /// This API can be used to request client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client" signerName), or to obtain certificates from custom non-Kubernetes signers. /// [KubeObject("CertificateSigningRequest", "certificates.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/certificates.k8s.io/v1/certificatesigningrequests")] [KubeApi(KubeAction.Create, "apis/certificates.k8s.io/v1/certificatesigningrequests")] [KubeApi(KubeAction.Get, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Patch, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Delete, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Update, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.WatchList, "apis/certificates.k8s.io/v1/watch/certificatesigningrequests")] [KubeApi(KubeAction.DeleteCollection, "apis/certificates.k8s.io/v1/certificatesigningrequests")] [KubeApi(KubeAction.Get, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status")] [KubeApi(KubeAction.Watch, "apis/certificates.k8s.io/v1/watch/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Get, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval")] [KubeApi(KubeAction.Patch, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status")] [KubeApi(KubeAction.Update, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status")] [KubeApi(KubeAction.Patch, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval")] [KubeApi(KubeAction.Update, "apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval")] public partial class CertificateSigningRequestV1 : KubeResourceV1 { /// /// spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public CertificateSigningRequestSpecV1 Spec { get; set; } /// /// status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CertificateSigningRequestStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CertificateSigningRequestV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Describes a certificate signing request /// [KubeObject("CertificateSigningRequest", "certificates.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests")] [KubeApi(KubeAction.Create, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests")] [KubeApi(KubeAction.Get, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Patch, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Delete, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Update, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}")] [KubeApi(KubeAction.WatchList, "apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests")] [KubeApi(KubeAction.DeleteCollection, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests")] [KubeApi(KubeAction.Get, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status")] [KubeApi(KubeAction.Watch, "apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}")] [KubeApi(KubeAction.Patch, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status")] [KubeApi(KubeAction.Update, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status")] [KubeApi(KubeAction.Update, "apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval")] public partial class CertificateSigningRequestV1Beta1 : KubeResourceV1 { /// /// The certificate request itself and any additional information. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public CertificateSigningRequestSpecV1Beta1 Spec { get; set; } /// /// Derived information about the request. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CertificateSigningRequestStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CinderPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling. /// public partial class CinderPersistentVolumeSourceV1 { /// /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "volumeID")] [JsonProperty("volumeID", NullValueHandling = NullValueHandling.Include)] public string VolumeID { get; set; } /// /// fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 SecretRef { get; set; } /// /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CinderVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling. /// public partial class CinderVolumeSourceV1 { /// /// volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "volumeID")] [JsonProperty("volumeID", NullValueHandling = NullValueHandling.Include)] public string VolumeID { get; set; } /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// secretRef is optional: points to a secret object containing parameters used to connect to OpenStack. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public LocalObjectReferenceV1 SecretRef { get; set; } /// /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ClientIPConfigV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClientIPConfig represents the configurations of Client IP based session affinity. /// public partial class ClientIPConfigV1 { /// /// timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP". Default value is 10800(for 3 hours). /// [YamlMember(Alias = "timeoutSeconds")] [JsonProperty("timeoutSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? TimeoutSeconds { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleBindingListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleBindingList is a collection of ClusterRoleBindings /// [KubeListItem("ClusterRoleBinding", "rbac.authorization.k8s.io/v1")] [KubeObject("ClusterRoleBindingList", "rbac.authorization.k8s.io/v1")] public partial class ClusterRoleBindingListV1 : KubeResourceListV1 { /// /// Items is a list of ClusterRoleBindings /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleBindingListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleBindingList is a collection of ClusterRoleBindings /// [KubeListItem("ClusterRoleBinding", "rbac.authorization.k8s.io/v1alpha1")] [KubeObject("ClusterRoleBindingList", "rbac.authorization.k8s.io/v1alpha1")] public partial class ClusterRoleBindingListV1Alpha1 : KubeResourceListV1 { /// /// Items is a list of ClusterRoleBindings /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleBindingListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleBindingList is a collection of ClusterRoleBindings /// [KubeListItem("ClusterRoleBinding", "rbac.authorization.k8s.io/v1beta1")] [KubeObject("ClusterRoleBindingList", "rbac.authorization.k8s.io/v1beta1")] public partial class ClusterRoleBindingListV1Beta1 : KubeResourceListV1 { /// /// Items is a list of ClusterRoleBindings /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleBindingV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. /// [KubeObject("ClusterRoleBinding", "rbac.authorization.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1/clusterrolebindings")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1/clusterrolebindings")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1/clusterrolebindings")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}")] public partial class ClusterRoleBindingV1 : KubeResourceV1 { /// /// RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable. /// [YamlMember(Alias = "roleRef")] [JsonProperty("roleRef", NullValueHandling = NullValueHandling.Include)] public RoleRefV1 RoleRef { get; set; } /// /// Subjects holds references to the objects the role applies to. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSubjects() => Subjects.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleBindingV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. /// [KubeObject("ClusterRoleBinding", "rbac.authorization.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings/{name}")] public partial class ClusterRoleBindingV1Alpha1 : KubeResourceV1 { /// /// RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. /// [YamlMember(Alias = "roleRef")] [JsonProperty("roleRef", NullValueHandling = NullValueHandling.Include)] public RoleRefV1Alpha1 RoleRef { get; set; } /// /// Subjects holds references to the objects the role applies to. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSubjects() => Subjects.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleBindingV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. /// [KubeObject("ClusterRoleBinding", "rbac.authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}")] public partial class ClusterRoleBindingV1Beta1 : KubeResourceV1 { /// /// RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. /// [YamlMember(Alias = "roleRef")] [JsonProperty("roleRef", NullValueHandling = NullValueHandling.Include)] public RoleRefV1Beta1 RoleRef { get; set; } /// /// Subjects holds references to the objects the role applies to. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSubjects() => Subjects.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleList is a collection of ClusterRoles /// [KubeListItem("ClusterRole", "rbac.authorization.k8s.io/v1")] [KubeObject("ClusterRoleList", "rbac.authorization.k8s.io/v1")] public partial class ClusterRoleListV1 : KubeResourceListV1 { /// /// Items is a list of ClusterRoles /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleList is a collection of ClusterRoles /// [KubeListItem("ClusterRole", "rbac.authorization.k8s.io/v1alpha1")] [KubeObject("ClusterRoleList", "rbac.authorization.k8s.io/v1alpha1")] public partial class ClusterRoleListV1Alpha1 : KubeResourceListV1 { /// /// Items is a list of ClusterRoles /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRoleList is a collection of ClusterRoles /// [KubeListItem("ClusterRole", "rbac.authorization.k8s.io/v1beta1")] [KubeObject("ClusterRoleList", "rbac.authorization.k8s.io/v1beta1")] public partial class ClusterRoleListV1Beta1 : KubeResourceListV1 { /// /// Items is a list of ClusterRoles /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. /// [KubeObject("ClusterRole", "rbac.authorization.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1/clusterroles")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1/clusterroles")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1/clusterroles/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1/clusterroles/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1/clusterroles/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1/clusterroles/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1/watch/clusterroles")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1/clusterroles")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}")] public partial class ClusterRoleV1 : KubeResourceV1 { /// /// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller. /// [YamlMember(Alias = "aggregationRule")] [JsonProperty("aggregationRule", NullValueHandling = NullValueHandling.Ignore)] public AggregationRuleV1 AggregationRule { get; set; } /// /// Rules holds all the PolicyRules for this ClusterRole /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. /// [KubeObject("ClusterRole", "rbac.authorization.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1alpha1/clusterroles")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1alpha1/clusterroles")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1alpha1/clusterroles")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles/{name}")] public partial class ClusterRoleV1Alpha1 : KubeResourceV1 { /// /// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller. /// [YamlMember(Alias = "aggregationRule")] [JsonProperty("aggregationRule", NullValueHandling = NullValueHandling.Ignore)] public AggregationRuleV1Alpha1 AggregationRule { get; set; } /// /// Rules holds all the PolicyRules for this ClusterRole /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterRoleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. /// [KubeObject("ClusterRole", "rbac.authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1beta1/clusterroles")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1beta1/clusterroles")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1beta1/clusterroles")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}")] public partial class ClusterRoleV1Beta1 : KubeResourceV1 { /// /// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller. /// [YamlMember(Alias = "aggregationRule")] [JsonProperty("aggregationRule", NullValueHandling = NullValueHandling.Ignore)] public AggregationRuleV1Beta1 AggregationRule { get; set; } /// /// Rules holds all the PolicyRules for this ClusterRole /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterTrustBundleListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterTrustBundleList is a collection of ClusterTrustBundle objects /// [KubeListItem("ClusterTrustBundle", "certificates.k8s.io/v1alpha1")] [KubeObject("ClusterTrustBundleList", "certificates.k8s.io/v1alpha1")] public partial class ClusterTrustBundleListV1Alpha1 : KubeResourceListV1 { /// /// items is a collection of ClusterTrustBundle objects /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ClusterTrustBundleProjectionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem. /// public partial class ClusterTrustBundleProjectionV1 { /// /// Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated. /// [YamlMember(Alias = "signerName")] [JsonProperty("signerName", NullValueHandling = NullValueHandling.Ignore)] public string SignerName { get; set; } /// /// Relative path from the volume root to write the bundle. /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } /// /// If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles. /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } /// /// Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as "match nothing". If set but empty, interpreted as "match everything". /// [YamlMember(Alias = "labelSelector")] [JsonProperty("labelSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 LabelSelector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ClusterTrustBundleSpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterTrustBundleSpec contains the signer and trust anchors. /// public partial class ClusterTrustBundleSpecV1Alpha1 { /// /// signerName indicates the associated signer, if any. /// /// In order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName=<the signer name> verb=attest. /// /// If signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`. /// /// If signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix. /// /// List/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector. /// [YamlMember(Alias = "signerName")] [JsonProperty("signerName", NullValueHandling = NullValueHandling.Ignore)] public string SignerName { get; set; } /// /// trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates. /// /// The data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers. /// /// Users of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data. /// [YamlMember(Alias = "trustBundle")] [JsonProperty("trustBundle", NullValueHandling = NullValueHandling.Include)] public string TrustBundle { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ClusterTrustBundleV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates). /// /// ClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to. /// /// It can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle. /// [KubeObject("ClusterTrustBundle", "certificates.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/certificates.k8s.io/v1alpha1/clustertrustbundles")] [KubeApi(KubeAction.Create, "apis/certificates.k8s.io/v1alpha1/clustertrustbundles")] [KubeApi(KubeAction.Get, "apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}")] [KubeApi(KubeAction.Patch, "apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}")] [KubeApi(KubeAction.Delete, "apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}")] [KubeApi(KubeAction.Update, "apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}")] [KubeApi(KubeAction.WatchList, "apis/certificates.k8s.io/v1alpha1/watch/clustertrustbundles")] [KubeApi(KubeAction.DeleteCollection, "apis/certificates.k8s.io/v1alpha1/clustertrustbundles")] [KubeApi(KubeAction.Watch, "apis/certificates.k8s.io/v1alpha1/watch/clustertrustbundles/{name}")] public partial class ClusterTrustBundleV1Alpha1 : KubeResourceV1 { /// /// spec contains the signer (if any) and trust anchors. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public ClusterTrustBundleSpecV1Alpha1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ComponentConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Information about the condition of a component. /// public partial class ComponentConditionV1 { /// /// Message about the condition for a component. For example, information about a health check. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of condition for a component. Valid value: "Healthy" /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Condition error code for a component. For example, a health check error code. /// [YamlMember(Alias = "error")] [JsonProperty("error", NullValueHandling = NullValueHandling.Ignore)] public string Error { get; set; } /// /// Status of the condition for a component. Valid values for "Healthy": "True", "False", or "Unknown". /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ComponentStatusListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+ /// [KubeListItem("ComponentStatus", "v1")] [KubeObject("ComponentStatusList", "v1")] public partial class ComponentStatusListV1 : KubeResourceListV1 { /// /// List of ComponentStatus objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ComponentStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+ /// [KubeObject("ComponentStatus", "v1")] [KubeApi(KubeAction.List, "api/v1/componentstatuses")] [KubeApi(KubeAction.Get, "api/v1/componentstatuses/{name}")] public partial class ComponentStatusV1 : KubeResourceV1 { /// /// List of component conditions observed /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Condition contains details for one aspect of the current state of this API Resource. /// public partial class ConditionV1 { /// /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Include)] public DateTime? LastTransitionTime { get; set; } /// /// message is a human readable message indicating details about the transition. This may be an empty string. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Include)] public string Message { get; set; } /// /// type of condition in CamelCase or in foo.example.com/CamelCase. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Include)] public string Reason { get; set; } /// /// status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ConfigMapEnvSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. /// /// The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables. /// public partial class ConfigMapEnvSourceV1 { /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Specify whether the ConfigMap must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ConfigMapKeySelectorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Selects a key from a ConfigMap. /// public partial class ConfigMapKeySelectorV1 { /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Specify whether the ConfigMap or its key must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } /// /// The key to select. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ConfigMapListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ConfigMapList is a resource containing a list of ConfigMap objects. /// [KubeListItem("ConfigMap", "v1")] [KubeObject("ConfigMapList", "v1")] public partial class ConfigMapListV1 : KubeResourceListV1 { /// /// Items is the list of ConfigMaps. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ConfigMapNodeConfigSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration /// public partial class ConfigMapNodeConfigSourceV1 { /// /// UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// Name is the metadata.name of the referenced ConfigMap. This field is required in all cases. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Include)] public string Namespace { get; set; } /// /// ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status. /// [YamlMember(Alias = "resourceVersion")] [JsonProperty("resourceVersion", NullValueHandling = NullValueHandling.Ignore)] public string ResourceVersion { get; set; } /// /// KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases. /// [YamlMember(Alias = "kubeletConfigKey")] [JsonProperty("kubeletConfigKey", NullValueHandling = NullValueHandling.Include)] public string KubeletConfigKey { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ConfigMapProjectionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Adapts a ConfigMap into a projected volume. /// /// The contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode. /// [KubeListItem("KeyToPath", "v1")] public partial class ConfigMapProjectionV1 { /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// optional specify whether the ConfigMap or its keys must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } /// /// 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 '..'. /// [YamlMember(Alias = "items")] [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Items { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeItems() => Items.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ConfigMapV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ConfigMap holds configuration data for pods to consume. /// [KubeObject("ConfigMap", "v1")] [KubeApi(KubeAction.List, "api/v1/configmaps")] [KubeApi(KubeAction.WatchList, "api/v1/watch/configmaps")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/configmaps")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/configmaps")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/configmaps/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/configmaps/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/configmaps/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/configmaps/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/configmaps")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/configmaps")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/configmaps/{name}")] public partial class ConfigMapV1 : KubeResourceV1 { /// /// BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet. /// [YamlMember(Alias = "binaryData")] [JsonProperty("binaryData", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary BinaryData { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeBinaryData() => BinaryData.Count > 0; /// /// Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process. /// [YamlMember(Alias = "data")] [JsonProperty("data", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Data { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeData() => Data.Count > 0; /// /// Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. /// [YamlMember(Alias = "immutable")] [JsonProperty("immutable", NullValueHandling = NullValueHandling.Ignore)] public bool? Immutable { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ConfigMapVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Adapts a ConfigMap into a volume. /// /// The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling. /// [KubeListItem("KeyToPath", "v1")] public partial class ConfigMapVolumeSourceV1 { /// /// 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. /// [YamlMember(Alias = "defaultMode")] [JsonProperty("defaultMode", NullValueHandling = NullValueHandling.Ignore)] public int? DefaultMode { get; set; } /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// optional specify whether the ConfigMap or its keys must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } /// /// 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 '..'. /// [YamlMember(Alias = "items")] [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Items { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeItems() => Items.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ContainerImageV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Describe a container image /// public partial class ContainerImageV1 { /// /// Names by which this image is known. e.g. ["kubernetes.example/hyperkube:v1.0.7", "cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7"] /// [YamlMember(Alias = "names")] [JsonProperty("names", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Names { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNames() => Names.Count > 0; /// /// The size of the image in bytes. /// [YamlMember(Alias = "sizeBytes")] [JsonProperty("sizeBytes", NullValueHandling = NullValueHandling.Ignore)] public long? SizeBytes { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerPortV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerPort represents a network port in a single container. /// public partial class ContainerPortV1 { /// /// What host IP to bind the external port to. /// [YamlMember(Alias = "hostIP")] [JsonProperty("hostIP", NullValueHandling = NullValueHandling.Ignore)] public string HostIP { get; set; } /// /// If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". /// [YamlMember(Alias = "protocol")] [JsonProperty("protocol", NullValueHandling = NullValueHandling.Ignore)] public string Protocol { get; set; } /// /// Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. /// [YamlMember(Alias = "containerPort")] [JsonProperty("containerPort", NullValueHandling = NullValueHandling.Include)] public int ContainerPort { get; set; } /// /// Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. /// [YamlMember(Alias = "hostPort")] [JsonProperty("hostPort", NullValueHandling = NullValueHandling.Ignore)] public int? HostPort { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerResizePolicyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerResizePolicy represents resource resize policy for the container. /// public partial class ContainerResizePolicyV1 { /// /// Name of the resource to which this resource resize policy applies. Supported values: cpu, memory. /// [YamlMember(Alias = "resourceName")] [JsonProperty("resourceName", NullValueHandling = NullValueHandling.Include)] public string ResourceName { get; set; } /// /// Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired. /// [YamlMember(Alias = "restartPolicy")] [JsonProperty("restartPolicy", NullValueHandling = NullValueHandling.Include)] public string RestartPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerResourceMetricSourceV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set. /// public partial class ContainerResourceMetricSourceV2 { /// /// name is the name of the resource in question. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// container is the name of the container in the pods of the scaling target /// [YamlMember(Alias = "container")] [JsonProperty("container", NullValueHandling = NullValueHandling.Include)] public string Container { get; set; } /// /// target specifies the target value for the given metric /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public MetricTargetV2 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerResourceMetricStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// public partial class ContainerResourceMetricStatusV2 { /// /// name is the name of the resource in question. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// container is the name of the container in the pods of the scaling target /// [YamlMember(Alias = "container")] [JsonProperty("container", NullValueHandling = NullValueHandling.Include)] public string Container { get; set; } /// /// current contains the current value for the given metric /// [YamlMember(Alias = "current")] [JsonProperty("current", NullValueHandling = NullValueHandling.Include)] public MetricValueStatusV2 Current { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerStateRunningV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerStateRunning is a running state of a container. /// public partial class ContainerStateRunningV1 { /// /// Time at which the container was last (re-)started /// [YamlMember(Alias = "startedAt")] [JsonProperty("startedAt", NullValueHandling = NullValueHandling.Ignore)] public DateTime? StartedAt { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerStateTerminatedV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerStateTerminated is a terminated state of a container. /// public partial class ContainerStateTerminatedV1 { /// /// Container's ID in the format '<type>://<container_id>' /// [YamlMember(Alias = "containerID")] [JsonProperty("containerID", NullValueHandling = NullValueHandling.Ignore)] public string ContainerID { get; set; } /// /// Exit status from the last termination of the container /// [YamlMember(Alias = "exitCode")] [JsonProperty("exitCode", NullValueHandling = NullValueHandling.Include)] public int ExitCode { get; set; } /// /// Message regarding the last termination of the container /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Signal from the last termination of the container /// [YamlMember(Alias = "signal")] [JsonProperty("signal", NullValueHandling = NullValueHandling.Ignore)] public int? Signal { get; set; } /// /// (brief) reason from the last termination of the container /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Time at which the container last terminated /// [YamlMember(Alias = "finishedAt")] [JsonProperty("finishedAt", NullValueHandling = NullValueHandling.Ignore)] public DateTime? FinishedAt { get; set; } /// /// Time at which previous execution of the container started /// [YamlMember(Alias = "startedAt")] [JsonProperty("startedAt", NullValueHandling = NullValueHandling.Ignore)] public DateTime? StartedAt { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerStateV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting. /// public partial class ContainerStateV1 { /// /// Details about a terminated container /// [YamlMember(Alias = "terminated")] [JsonProperty("terminated", NullValueHandling = NullValueHandling.Ignore)] public ContainerStateTerminatedV1 Terminated { get; set; } /// /// Details about a running container /// [YamlMember(Alias = "running")] [JsonProperty("running", NullValueHandling = NullValueHandling.Ignore)] public ContainerStateRunningV1 Running { get; set; } /// /// Details about a waiting container /// [YamlMember(Alias = "waiting")] [JsonProperty("waiting", NullValueHandling = NullValueHandling.Ignore)] public ContainerStateWaitingV1 Waiting { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerStateWaitingV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerStateWaiting is a waiting state of a container. /// public partial class ContainerStateWaitingV1 { /// /// Message regarding why the container is not yet running. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// (brief) reason the container is not yet running. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerStatus contains details for the current status of this container. /// public partial class ContainerStatusV1 { /// /// ContainerID is the ID of the container in the format '<type>://<container_id>'. Where type is a container runtime identifier, returned from Version call of CRI API (for example "containerd"). /// [YamlMember(Alias = "containerID")] [JsonProperty("containerID", NullValueHandling = NullValueHandling.Ignore)] public string ContainerID { get; set; } /// /// ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime. /// [YamlMember(Alias = "imageID")] [JsonProperty("imageID", NullValueHandling = NullValueHandling.Include)] public string ImageID { get; set; } /// /// 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. /// [YamlMember(Alias = "started")] [JsonProperty("started", NullValueHandling = NullValueHandling.Ignore)] public bool? Started { get; set; } /// /// Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images. /// [YamlMember(Alias = "image")] [JsonProperty("image", NullValueHandling = NullValueHandling.Include)] public string Image { get; set; } /// /// LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0. /// [YamlMember(Alias = "lastState")] [JsonProperty("lastState", NullValueHandling = NullValueHandling.Ignore)] public ContainerStateV1 LastState { get; set; } /// /// Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// State holds details about the container's current condition. /// [YamlMember(Alias = "state")] [JsonProperty("state", NullValueHandling = NullValueHandling.Ignore)] public ContainerStateV1 State { get; set; } /// /// User represents user identity information initially attached to the first process of the container /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public ContainerUserV1 User { get; set; } /// /// AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize. /// [YamlMember(Alias = "allocatedResources")] [JsonProperty("allocatedResources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary AllocatedResources { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllocatedResources() => AllocatedResources.Count > 0; /// /// AllocatedResourcesStatus represents the status of various resources allocated for this Pod. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "allocatedResourcesStatus")] [JsonProperty("allocatedResourcesStatus", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllocatedResourcesStatus { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllocatedResourcesStatus() => AllocatedResourcesStatus.Count > 0; /// /// Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", NullValueHandling = NullValueHandling.Ignore)] public ResourceRequirementsV1 Resources { get; set; } /// /// Status of volume mounts. /// [MergeStrategy(Key = "mountPath")] [YamlMember(Alias = "volumeMounts")] [JsonProperty("volumeMounts", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeMounts { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeMounts() => VolumeMounts.Count > 0; /// /// 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. /// [YamlMember(Alias = "restartCount")] [JsonProperty("restartCount", NullValueHandling = NullValueHandling.Include)] public int RestartCount { get; set; } /// /// Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field). /// /// The value is typically used to determine whether a container is ready to accept traffic. /// [YamlMember(Alias = "ready")] [JsonProperty("ready", NullValueHandling = NullValueHandling.Include)] public bool Ready { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerUserV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ContainerUser represents user identity information /// public partial class ContainerUserV1 { /// /// Linux holds user identity information initially attached to the first process of the containers in Linux. Note that the actual running identity can be changed if the process has enough privilege to do so. /// [YamlMember(Alias = "linux")] [JsonProperty("linux", NullValueHandling = NullValueHandling.Ignore)] public LinuxContainerUserV1 Linux { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ContainerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A single application container that you want to run within a pod. /// public partial class ContainerV1 { /// /// 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 /// [YamlMember(Alias = "command")] [JsonProperty("command", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Command { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCommand() => Command.Count > 0; /// /// 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. /// [YamlMember(Alias = "image")] [JsonProperty("image", NullValueHandling = NullValueHandling.Ignore)] public string Image { get; set; } /// /// Actions that the management system should take in response to container lifecycle events. Cannot be updated. /// [YamlMember(Alias = "lifecycle")] [JsonProperty("lifecycle", NullValueHandling = NullValueHandling.Ignore)] public LifecycleV1 Lifecycle { get; set; } /// /// Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes /// [YamlMember(Alias = "livenessProbe")] [JsonProperty("livenessProbe", NullValueHandling = NullValueHandling.Ignore)] public ProbeV1 LivenessProbe { get; set; } /// /// Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes /// [YamlMember(Alias = "readinessProbe")] [JsonProperty("readinessProbe", NullValueHandling = NullValueHandling.Ignore)] public ProbeV1 ReadinessProbe { get; set; } /// /// StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes /// [YamlMember(Alias = "startupProbe")] [JsonProperty("startupProbe", NullValueHandling = NullValueHandling.Ignore)] public ProbeV1 StartupProbe { get; set; } /// /// Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false /// [YamlMember(Alias = "stdinOnce")] [JsonProperty("stdinOnce", NullValueHandling = NullValueHandling.Ignore)] public bool? StdinOnce { get; set; } /// /// Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated. /// [YamlMember(Alias = "terminationMessagePath")] [JsonProperty("terminationMessagePath", NullValueHandling = NullValueHandling.Ignore)] public string TerminationMessagePath { get; set; } /// /// List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. /// [YamlMember(Alias = "envFrom")] [JsonProperty("envFrom", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List EnvFrom { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnvFrom() => EnvFrom.Count > 0; /// /// Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false. /// [YamlMember(Alias = "stdin")] [JsonProperty("stdin", NullValueHandling = NullValueHandling.Ignore)] public bool? Stdin { get; set; } /// /// Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated. /// [YamlMember(Alias = "workingDir")] [JsonProperty("workingDir", NullValueHandling = NullValueHandling.Ignore)] public string WorkingDir { get; set; } /// /// Arguments to the entrypoint. The container image's CMD 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 /// [YamlMember(Alias = "args")] [JsonProperty("args", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Args { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeArgs() => Args.Count > 0; /// /// List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated. /// [YamlMember(Alias = "ports")] [MergeStrategy(Key = "containerPort")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; /// /// Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ /// [YamlMember(Alias = "resources")] [JsonProperty("resources", NullValueHandling = NullValueHandling.Ignore)] public ResourceRequirementsV1 Resources { get; set; } /// /// volumeDevices is the list of block devices to be used by the container. /// [MergeStrategy(Key = "devicePath")] [YamlMember(Alias = "volumeDevices")] [JsonProperty("volumeDevices", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeDevices { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeDevices() => VolumeDevices.Count > 0; /// /// Pod volumes to mount into the container's filesystem. Cannot be updated. /// [MergeStrategy(Key = "mountPath")] [YamlMember(Alias = "volumeMounts")] [JsonProperty("volumeMounts", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeMounts { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeMounts() => VolumeMounts.Count > 0; /// /// SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ /// [YamlMember(Alias = "securityContext")] [JsonProperty("securityContext", NullValueHandling = NullValueHandling.Ignore)] public SecurityContextV1 SecurityContext { get; set; } /// /// List of environment variables to set in the container. Cannot be updated. /// [YamlMember(Alias = "env")] [MergeStrategy(Key = "name")] [JsonProperty("env", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Env { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnv() => Env.Count > 0; /// /// Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images /// [YamlMember(Alias = "imagePullPolicy")] [JsonProperty("imagePullPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ImagePullPolicy { get; set; } /// /// Resources resize policy for the container. /// [YamlMember(Alias = "resizePolicy")] [JsonProperty("resizePolicy", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResizePolicy { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResizePolicy() => ResizePolicy.Count > 0; /// /// RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. /// [YamlMember(Alias = "restartPolicy")] [JsonProperty("restartPolicy", NullValueHandling = NullValueHandling.Ignore)] public string RestartPolicy { get; set; } /// /// Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated. /// [YamlMember(Alias = "terminationMessagePolicy")] [JsonProperty("terminationMessagePolicy", NullValueHandling = NullValueHandling.Ignore)] public string TerminationMessagePolicy { get; set; } /// /// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false. /// [YamlMember(Alias = "tty")] [JsonProperty("tty", NullValueHandling = NullValueHandling.Ignore)] public bool? Tty { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ControllerRevisionListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ControllerRevisionList is a resource containing a list of ControllerRevision objects. /// [KubeListItem("ControllerRevision", "apps/v1")] [KubeObject("ControllerRevisionList", "apps/v1")] public partial class ControllerRevisionListV1 : KubeResourceListV1 { /// /// Items is the list of ControllerRevisions /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ControllerRevisionListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ControllerRevisionList is a resource containing a list of ControllerRevision objects. /// [KubeListItem("ControllerRevision", "apps/v1beta1")] [KubeObject("ControllerRevisionList", "apps/v1beta1")] public partial class ControllerRevisionListV1Beta1 : KubeResourceListV1 { /// /// Items is the list of ControllerRevisions /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ControllerRevisionListV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ControllerRevisionList is a resource containing a list of ControllerRevision objects. /// [KubeListItem("ControllerRevision", "apps/v1beta2")] [KubeObject("ControllerRevisionList", "apps/v1beta2")] public partial class ControllerRevisionListV1Beta2 : KubeResourceListV1 { /// /// Items is the list of ControllerRevisions /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ControllerRevisionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers. /// [KubeObject("ControllerRevision", "apps/v1")] [KubeApi(KubeAction.List, "apis/apps/v1/controllerrevisions")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/controllerrevisions")] [KubeApi(KubeAction.List, "apis/apps/v1/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Create, "apis/apps/v1/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Watch, "apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}")] public partial class ControllerRevisionV1 : KubeResourceV1 { /// /// Data is the serialized representation of the state. /// [YamlMember(Alias = "data")] [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] public RawExtensionRuntime Data { get; set; } /// /// Revision indicates the revision of the state represented by Data. /// [YamlMember(Alias = "revision")] [JsonProperty("revision", NullValueHandling = NullValueHandling.Include)] public long Revision { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ControllerRevisionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers. /// [KubeObject("ControllerRevision", "apps/v1beta1")] [KubeApi(KubeAction.List, "apis/apps/v1beta1/controllerrevisions")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta1/watch/controllerrevisions")] [KubeApi(KubeAction.List, "apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Create, "apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Get, "apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}")] public partial class ControllerRevisionV1Beta1 : KubeResourceV1 { /// /// Data is the serialized representation of the state. /// [YamlMember(Alias = "data")] [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] public RawExtensionRuntime Data { get; set; } /// /// Revision indicates the revision of the state represented by Data. /// [YamlMember(Alias = "revision")] [JsonProperty("revision", NullValueHandling = NullValueHandling.Include)] public long Revision { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ControllerRevisionV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers. /// [KubeObject("ControllerRevision", "apps/v1beta2")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/controllerrevisions")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/controllerrevisions")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Create, "apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}")] public partial class ControllerRevisionV1Beta2 : KubeResourceV1 { /// /// Data is the serialized representation of the state. /// [YamlMember(Alias = "data")] [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] public RawExtensionRuntime Data { get; set; } /// /// Revision indicates the revision of the state represented by Data. /// [YamlMember(Alias = "revision")] [JsonProperty("revision", NullValueHandling = NullValueHandling.Include)] public long Revision { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobList is a collection of cron jobs. /// [KubeListItem("CronJob", "batch/v1")] [KubeObject("CronJobList", "batch/v1")] public partial class CronJobListV1 : KubeResourceListV1 { /// /// items is the list of CronJobs. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CronJobListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobList is a collection of cron jobs. /// [KubeListItem("CronJob", "batch/v1beta1")] [KubeObject("CronJobList", "batch/v1beta1")] public partial class CronJobListV1Beta1 : KubeResourceListV1 { /// /// items is the list of CronJobs. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CronJobListV2Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobList is a collection of cron jobs. /// [KubeListItem("CronJob", "batch/v2alpha1")] [KubeObject("CronJobList", "batch/v2alpha1")] public partial class CronJobListV2Alpha1 : KubeResourceListV1 { /// /// items is the list of CronJobs. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CronJobSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobSpec describes how the job execution will look like and when it will actually run. /// public partial class CronJobSpecV1 { /// /// This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. /// [YamlMember(Alias = "suspend")] [JsonProperty("suspend", NullValueHandling = NullValueHandling.Ignore)] public bool? Suspend { get; set; } /// /// Specifies the job that will be created when executing a CronJob. /// [YamlMember(Alias = "jobTemplate")] [JsonProperty("jobTemplate", NullValueHandling = NullValueHandling.Include)] public JobTemplateSpecV1 JobTemplate { get; set; } /// /// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. /// [YamlMember(Alias = "schedule")] [JsonProperty("schedule", NullValueHandling = NullValueHandling.Include)] public string Schedule { get; set; } /// /// The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones /// [YamlMember(Alias = "timeZone")] [JsonProperty("timeZone", NullValueHandling = NullValueHandling.Ignore)] public string TimeZone { get; set; } /// /// Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones. /// [YamlMember(Alias = "startingDeadlineSeconds")] [JsonProperty("startingDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? StartingDeadlineSeconds { get; set; } /// /// The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1. /// [YamlMember(Alias = "failedJobsHistoryLimit")] [JsonProperty("failedJobsHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? FailedJobsHistoryLimit { get; set; } /// /// The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3. /// [YamlMember(Alias = "successfulJobsHistoryLimit")] [JsonProperty("successfulJobsHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? SuccessfulJobsHistoryLimit { get; set; } /// /// Specifies how to treat concurrent executions of a Job. Valid values are: /// /// - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one /// [YamlMember(Alias = "concurrencyPolicy")] [JsonProperty("concurrencyPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ConcurrencyPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobSpec describes how the job execution will look like and when it will actually run. /// public partial class CronJobSpecV1Beta1 { /// /// This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. /// [YamlMember(Alias = "suspend")] [JsonProperty("suspend", NullValueHandling = NullValueHandling.Ignore)] public bool? Suspend { get; set; } /// /// Specifies the job that will be created when executing a CronJob. /// [YamlMember(Alias = "jobTemplate")] [JsonProperty("jobTemplate", NullValueHandling = NullValueHandling.Include)] public JobTemplateSpecV1Beta1 JobTemplate { get; set; } /// /// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. /// [YamlMember(Alias = "schedule")] [JsonProperty("schedule", NullValueHandling = NullValueHandling.Include)] public string Schedule { get; set; } /// /// Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones. /// [YamlMember(Alias = "startingDeadlineSeconds")] [JsonProperty("startingDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? StartingDeadlineSeconds { get; set; } /// /// The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. /// [YamlMember(Alias = "failedJobsHistoryLimit")] [JsonProperty("failedJobsHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? FailedJobsHistoryLimit { get; set; } /// /// The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3. /// [YamlMember(Alias = "successfulJobsHistoryLimit")] [JsonProperty("successfulJobsHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? SuccessfulJobsHistoryLimit { get; set; } /// /// Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one /// [YamlMember(Alias = "concurrencyPolicy")] [JsonProperty("concurrencyPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ConcurrencyPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobSpecV2Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobSpec describes how the job execution will look like and when it will actually run. /// public partial class CronJobSpecV2Alpha1 { /// /// This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. /// [YamlMember(Alias = "suspend")] [JsonProperty("suspend", NullValueHandling = NullValueHandling.Ignore)] public bool? Suspend { get; set; } /// /// Specifies the job that will be created when executing a CronJob. /// [YamlMember(Alias = "jobTemplate")] [JsonProperty("jobTemplate", NullValueHandling = NullValueHandling.Include)] public JobTemplateSpecV2Alpha1 JobTemplate { get; set; } /// /// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. /// [YamlMember(Alias = "schedule")] [JsonProperty("schedule", NullValueHandling = NullValueHandling.Include)] public string Schedule { get; set; } /// /// Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones. /// [YamlMember(Alias = "startingDeadlineSeconds")] [JsonProperty("startingDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? StartingDeadlineSeconds { get; set; } /// /// The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. /// [YamlMember(Alias = "failedJobsHistoryLimit")] [JsonProperty("failedJobsHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? FailedJobsHistoryLimit { get; set; } /// /// The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. /// [YamlMember(Alias = "successfulJobsHistoryLimit")] [JsonProperty("successfulJobsHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? SuccessfulJobsHistoryLimit { get; set; } /// /// Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one /// [YamlMember(Alias = "concurrencyPolicy")] [JsonProperty("concurrencyPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ConcurrencyPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobStatus represents the current state of a cron job. /// public partial class CronJobStatusV1 { /// /// A list of pointers to currently running jobs. /// [YamlMember(Alias = "active")] [JsonProperty("active", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Active { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeActive() => Active.Count > 0; /// /// Information when was the last time the job was successfully scheduled. /// [YamlMember(Alias = "lastScheduleTime")] [JsonProperty("lastScheduleTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastScheduleTime { get; set; } /// /// Information when was the last time the job successfully completed. /// [YamlMember(Alias = "lastSuccessfulTime")] [JsonProperty("lastSuccessfulTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastSuccessfulTime { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobStatus represents the current state of a cron job. /// public partial class CronJobStatusV1Beta1 { /// /// A list of pointers to currently running jobs. /// [YamlMember(Alias = "active")] [JsonProperty("active", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Active { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeActive() => Active.Count > 0; /// /// Information when was the last time the job was successfully scheduled. /// [YamlMember(Alias = "lastScheduleTime")] [JsonProperty("lastScheduleTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastScheduleTime { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobStatusV2Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJobStatus represents the current state of a cron job. /// public partial class CronJobStatusV2Alpha1 { /// /// A list of pointers to currently running jobs. /// [YamlMember(Alias = "active")] [JsonProperty("active", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Active { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeActive() => Active.Count > 0; /// /// Information when was the last time the job was successfully scheduled. /// [YamlMember(Alias = "lastScheduleTime")] [JsonProperty("lastScheduleTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastScheduleTime { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJob represents the configuration of a single cron job. /// [KubeObject("CronJob", "batch/v1")] [KubeApi(KubeAction.List, "apis/batch/v1/cronjobs")] [KubeApi(KubeAction.WatchList, "apis/batch/v1/watch/cronjobs")] [KubeApi(KubeAction.List, "apis/batch/v1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Create, "apis/batch/v1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Get, "apis/batch/v1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Delete, "apis/batch/v1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Update, "apis/batch/v1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.WatchList, "apis/batch/v1/watch/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.DeleteCollection, "apis/batch/v1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Get, "apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status")] [KubeApi(KubeAction.Watch, "apis/batch/v1/watch/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status")] [KubeApi(KubeAction.Update, "apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status")] public partial class CronJobV1 : KubeResourceV1 { /// /// Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public CronJobSpecV1 Spec { get; set; } /// /// Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CronJobStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJob represents the configuration of a single cron job. /// [KubeObject("CronJob", "batch/v1beta1")] [KubeApi(KubeAction.List, "apis/batch/v1beta1/cronjobs")] [KubeApi(KubeAction.WatchList, "apis/batch/v1beta1/watch/cronjobs")] [KubeApi(KubeAction.List, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Create, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Get, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Delete, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Update, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.WatchList, "apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.DeleteCollection, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Get, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status")] [KubeApi(KubeAction.Watch, "apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status")] [KubeApi(KubeAction.Update, "apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status")] public partial class CronJobV1Beta1 : KubeResourceV1 { /// /// Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public CronJobSpecV1Beta1 Spec { get; set; } /// /// Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CronJobStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CronJobV2Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CronJob represents the configuration of a single cron job. /// [KubeObject("CronJob", "batch/v2alpha1")] [KubeApi(KubeAction.List, "apis/batch/v2alpha1/cronjobs")] [KubeApi(KubeAction.WatchList, "apis/batch/v2alpha1/watch/cronjobs")] [KubeApi(KubeAction.List, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Create, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Get, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Delete, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Update, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.WatchList, "apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.DeleteCollection, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs")] [KubeApi(KubeAction.Get, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}/status")] [KubeApi(KubeAction.Watch, "apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}/status")] [KubeApi(KubeAction.Update, "apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}/status")] public partial class CronJobV2Alpha1 : KubeResourceV1 { /// /// Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public CronJobSpecV2Alpha1 Spec { get; set; } /// /// Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CronJobStatusV2Alpha1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CrossVersionObjectReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CrossVersionObjectReference contains enough information to let you identify the referred resource. /// public partial class CrossVersionObjectReferenceV1 : KubeObjectV1 { /// /// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CrossVersionObjectReferenceV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CrossVersionObjectReference contains enough information to let you identify the referred resource. /// public partial class CrossVersionObjectReferenceV2 : KubeObjectV1 { /// /// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CrossVersionObjectReferenceV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CrossVersionObjectReference contains enough information to let you identify the referred resource. /// public partial class CrossVersionObjectReferenceV2Beta1 : KubeObjectV1 { /// /// Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceColumnDefinitionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceColumnDefinition specifies a column for server side printing. /// public partial class CustomResourceColumnDefinitionV1 { /// /// name is a human readable name for the column. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column. /// [YamlMember(Alias = "jsonPath")] [JsonProperty("jsonPath", NullValueHandling = NullValueHandling.Include)] public string JsonPath { get; set; } /// /// description is a human readable description of this column. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } /// /// format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details. /// [YamlMember(Alias = "format")] [JsonProperty("format", NullValueHandling = NullValueHandling.Ignore)] public string Format { get; set; } /// /// priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0. /// [YamlMember(Alias = "priority")] [JsonProperty("priority", NullValueHandling = NullValueHandling.Ignore)] public int? Priority { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceColumnDefinitionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceColumnDefinition specifies a column for server side printing. /// public partial class CustomResourceColumnDefinitionV1Beta1 { /// /// name is a human readable name for the column. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// JSONPath is a simple JSON path, i.e. with array notation. /// [YamlMember(Alias = "JSONPath")] [JsonProperty("JSONPath", NullValueHandling = NullValueHandling.Include)] public string JSONPath { get; set; } /// /// description is a human readable description of this column. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } /// /// format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more. /// [YamlMember(Alias = "format")] [JsonProperty("format", NullValueHandling = NullValueHandling.Ignore)] public string Format { get; set; } /// /// priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority. /// [YamlMember(Alias = "priority")] [JsonProperty("priority", NullValueHandling = NullValueHandling.Ignore)] public int? Priority { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceConversionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceConversion describes how to convert different versions of a CR. /// public partial class CustomResourceConversionV1 { /// /// webhook describes how to call the conversion webhook. Required when `strategy` is set to `"Webhook"`. /// [YamlMember(Alias = "webhook")] [JsonProperty("webhook", NullValueHandling = NullValueHandling.Ignore)] public WebhookConversionV1 Webhook { get; set; } /// /// strategy specifies how custom resources are converted between versions. Allowed values are: - `"None"`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `"Webhook"`: API Server will call to an external webhook to do the conversion. Additional information /// is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set. /// [YamlMember(Alias = "strategy")] [JsonProperty("strategy", NullValueHandling = NullValueHandling.Include)] public string Strategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionCondition contains details for the current condition of this pod. /// public partial class CustomResourceDefinitionConditionV1 { /// /// lastTransitionTime last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// message is a human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// type is the type of the condition. Types include Established, NamesAccepted and Terminating. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// reason is a unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// status is the status of the condition. Can be True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionCondition contains details for the current condition of this pod. /// public partial class CustomResourceDefinitionConditionV1Beta1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// Human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type is the type of the condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status is the status of the condition. Can be True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionList is a list of CustomResourceDefinition objects. /// [KubeListItem("CustomResourceDefinition", "apiextensions.k8s.io/v1")] [KubeObject("CustomResourceDefinitionList", "apiextensions.k8s.io/v1")] public partial class CustomResourceDefinitionListV1 : KubeResourceListV1 { /// /// items list individual CustomResourceDefinition objects /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionList is a list of CustomResourceDefinition objects. /// [KubeListItem("CustomResourceDefinition", "apiextensions.k8s.io/v1beta1")] [KubeObject("CustomResourceDefinitionList", "apiextensions.k8s.io/v1beta1")] public partial class CustomResourceDefinitionListV1Beta1 : KubeResourceListV1 { /// /// Items individual CustomResourceDefinitions /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionNamesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition /// public partial class CustomResourceDefinitionNamesV1 { /// /// 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. /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// listKind is the serialized kind of the list for this resource. Defaults to "`kind`List". /// [YamlMember(Alias = "listKind")] [JsonProperty("listKind", NullValueHandling = NullValueHandling.Ignore)] public string ListKind { get; set; } /// /// plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase. /// [YamlMember(Alias = "plural")] [JsonProperty("plural", NullValueHandling = NullValueHandling.Include)] public string Plural { get; set; } /// /// singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`. /// [YamlMember(Alias = "singular")] [JsonProperty("singular", NullValueHandling = NullValueHandling.Ignore)] public string Singular { get; set; } /// /// categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`. /// [YamlMember(Alias = "categories")] [JsonProperty("categories", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Categories { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCategories() => Categories.Count > 0; /// /// shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get <shortname>`. It must be all lowercase. /// [YamlMember(Alias = "shortNames")] [JsonProperty("shortNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ShortNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeShortNames() => ShortNames.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionNamesV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition /// public partial class CustomResourceDefinitionNamesV1Beta1 { /// /// Kind is the serialized kind of the resource. It is normally CamelCase and singular. /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// ListKind is the serialized kind of the list for this resource. Defaults to <kind>List. /// [YamlMember(Alias = "listKind")] [JsonProperty("listKind", NullValueHandling = NullValueHandling.Ignore)] public string ListKind { get; set; } /// /// Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase. /// [YamlMember(Alias = "plural")] [JsonProperty("plural", NullValueHandling = NullValueHandling.Include)] public string Plural { get; set; } /// /// Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased <kind> /// [YamlMember(Alias = "singular")] [JsonProperty("singular", NullValueHandling = NullValueHandling.Ignore)] public string Singular { get; set; } /// /// Categories is a list of grouped resources custom resources belong to (e.g. 'all') /// [YamlMember(Alias = "categories")] [JsonProperty("categories", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Categories { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCategories() => Categories.Count > 0; /// /// ShortNames are short names for the resource. It must be all lowercase. /// [YamlMember(Alias = "shortNames")] [JsonProperty("shortNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ShortNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeShortNames() => ShortNames.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionSpec describes how a user wants their resource to appear /// public partial class CustomResourceDefinitionSpecV1 { /// /// scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. /// [YamlMember(Alias = "scope")] [JsonProperty("scope", NullValueHandling = NullValueHandling.Include)] public string Scope { get; set; } /// /// conversion defines conversion settings for the CRD. /// [YamlMember(Alias = "conversion")] [JsonProperty("conversion", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceConversionV1 Conversion { get; set; } /// /// group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Include)] public string Group { get; set; } /// /// names specify the resource and kind names for the custom resource. /// [YamlMember(Alias = "names")] [JsonProperty("names", NullValueHandling = NullValueHandling.Include)] public CustomResourceDefinitionNamesV1 Names { get; set; } /// /// preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning for details. /// [YamlMember(Alias = "preserveUnknownFields")] [JsonProperty("preserveUnknownFields", NullValueHandling = NullValueHandling.Ignore)] public bool? PreserveUnknownFields { get; set; } /// /// versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10. /// [YamlMember(Alias = "versions")] [JsonProperty("versions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Versions { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionSpec describes how a user wants their resource to appear /// public partial class CustomResourceDefinitionSpecV1Beta1 { /// /// Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced /// [YamlMember(Alias = "scope")] [JsonProperty("scope", NullValueHandling = NullValueHandling.Include)] public string Scope { get; set; } /// /// Validation describes the validation methods for CustomResources /// [YamlMember(Alias = "validation")] [JsonProperty("validation", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceValidationV1Beta1 Validation { get; set; } /// /// Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use `Versions`. /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// Group is the group this resource belongs in /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Include)] public string Group { get; set; } /// /// AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. /// [YamlMember(Alias = "additionalPrinterColumns")] [JsonProperty("additionalPrinterColumns", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AdditionalPrinterColumns { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAdditionalPrinterColumns() => AdditionalPrinterColumns.Count > 0; /// /// Names are the names used to describe this custom resource /// [YamlMember(Alias = "names")] [JsonProperty("names", NullValueHandling = NullValueHandling.Include)] public CustomResourceDefinitionNamesV1Beta1 Names { get; set; } /// /// Subresources describes the subresources for CustomResources /// [YamlMember(Alias = "subresources")] [JsonProperty("subresources", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceSubresourcesV1Beta1 Subresources { get; set; } /// /// Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10. /// [YamlMember(Alias = "versions")] [JsonProperty("versions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Versions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVersions() => Versions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition /// public partial class CustomResourceDefinitionStatusV1 { /// /// acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec. /// [YamlMember(Alias = "acceptedNames")] [JsonProperty("acceptedNames", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceDefinitionNamesV1 AcceptedNames { get; set; } /// /// conditions indicate state for particular aspects of a CustomResourceDefinition /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. /// [YamlMember(Alias = "storedVersions")] [JsonProperty("storedVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List StoredVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeStoredVersions() => StoredVersions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition /// public partial class CustomResourceDefinitionStatusV1Beta1 { /// /// AcceptedNames are the names that are actually being used to serve discovery They may be different than the names in spec. /// [YamlMember(Alias = "acceptedNames")] [JsonProperty("acceptedNames", NullValueHandling = NullValueHandling.Include)] public CustomResourceDefinitionNamesV1Beta1 AcceptedNames { get; set; } /// /// Conditions indicate state for particular aspects of a CustomResourceDefinition /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// StoredVersions are all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so the migration controller can first finish a migration to another version (i.e. that no old objects are left in the storage), and then remove the rest of the versions from this list. None of the versions in this list can be removed from the spec.Versions field. /// [YamlMember(Alias = "storedVersions")] [JsonProperty("storedVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List StoredVersions { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>. /// [KubeObject("CustomResourceDefinition", "apiextensions.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/apiextensions.k8s.io/v1/customresourcedefinitions")] [KubeApi(KubeAction.Create, "apis/apiextensions.k8s.io/v1/customresourcedefinitions")] [KubeApi(KubeAction.Get, "apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Patch, "apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Delete, "apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Update, "apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.WatchList, "apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions")] [KubeApi(KubeAction.DeleteCollection, "apis/apiextensions.k8s.io/v1/customresourcedefinitions")] [KubeApi(KubeAction.Get, "apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Patch, "apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status")] [KubeApi(KubeAction.Update, "apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status")] public partial class CustomResourceDefinitionV1 : KubeResourceV1 { /// /// spec describes how the user wants the resources to appear /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public CustomResourceDefinitionSpecV1 Spec { get; set; } /// /// status indicates the actual state of the CustomResourceDefinition /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceDefinitionStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>. /// [KubeObject("CustomResourceDefinition", "apiextensions.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions")] [KubeApi(KubeAction.Create, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions")] [KubeApi(KubeAction.Get, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Patch, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Delete, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Update, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}")] [KubeApi(KubeAction.WatchList, "apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions")] [KubeApi(KubeAction.DeleteCollection, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions")] [KubeApi(KubeAction.Get, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}")] [KubeApi(KubeAction.Patch, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status")] [KubeApi(KubeAction.Update, "apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status")] public partial class CustomResourceDefinitionV1Beta1 : KubeResourceV1 { /// /// Spec describes how the user wants the resources to appear /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceDefinitionSpecV1Beta1 Spec { get; set; } /// /// Status indicates the actual state of the CustomResourceDefinition /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceDefinitionStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionVersionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceDefinitionVersion describes a version for CRD. /// public partial class CustomResourceDefinitionVersionV1 { /// /// schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource. /// [YamlMember(Alias = "schema")] [JsonProperty("schema", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceValidationV1 Schema { get; set; } /// /// 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. /// [YamlMember(Alias = "deprecated")] [JsonProperty("deprecated", NullValueHandling = NullValueHandling.Ignore)] public bool? Deprecated { get; set; } /// /// served is a flag enabling/disabling this version from being served via REST APIs /// [YamlMember(Alias = "served")] [JsonProperty("served", NullValueHandling = NullValueHandling.Include)] public bool Served { get; set; } /// /// 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. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true. /// [YamlMember(Alias = "storage")] [JsonProperty("storage", NullValueHandling = NullValueHandling.Include)] public bool Storage { get; set; } /// /// 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. /// [YamlMember(Alias = "deprecationWarning")] [JsonProperty("deprecationWarning", NullValueHandling = NullValueHandling.Ignore)] public string DeprecationWarning { get; set; } /// /// additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used. /// [YamlMember(Alias = "additionalPrinterColumns")] [JsonProperty("additionalPrinterColumns", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AdditionalPrinterColumns { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAdditionalPrinterColumns() => AdditionalPrinterColumns.Count > 0; /// /// 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 /// [YamlMember(Alias = "selectableFields")] [JsonProperty("selectableFields", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List SelectableFields { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSelectableFields() => SelectableFields.Count > 0; /// /// subresources specify what subresources this version of the defined custom resource have. /// [YamlMember(Alias = "subresources")] [JsonProperty("subresources", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceSubresourcesV1 Subresources { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceDefinitionVersionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class CustomResourceDefinitionVersionV1Beta1 { /// /// Served is a flag enabling/disabling this version from being served via REST APIs /// [YamlMember(Alias = "served")] [JsonProperty("served", NullValueHandling = NullValueHandling.Include)] public bool Served { get; set; } /// /// Name is the version name, e.g. v1, v2beta1, etc. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Storage flags the version as storage version. There must be exactly one flagged as storage version. /// [YamlMember(Alias = "storage")] [JsonProperty("storage", NullValueHandling = NullValueHandling.Include)] public bool Storage { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceSubresourceScaleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources. /// public partial class CustomResourceSubresourceScaleV1 { /// /// labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string. /// [YamlMember(Alias = "labelSelectorPath")] [JsonProperty("labelSelectorPath", NullValueHandling = NullValueHandling.Ignore)] public string LabelSelectorPath { get; set; } /// /// specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET. /// [YamlMember(Alias = "specReplicasPath")] [JsonProperty("specReplicasPath", NullValueHandling = NullValueHandling.Include)] public string SpecReplicasPath { get; set; } /// /// statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0. /// [YamlMember(Alias = "statusReplicasPath")] [JsonProperty("statusReplicasPath", NullValueHandling = NullValueHandling.Include)] public string StatusReplicasPath { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceSubresourceScaleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources. /// public partial class CustomResourceSubresourceScaleV1Beta1 { /// /// LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. Must be set to work with HPA. If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string. /// [YamlMember(Alias = "labelSelectorPath")] [JsonProperty("labelSelectorPath", NullValueHandling = NullValueHandling.Ignore)] public string LabelSelectorPath { get; set; } /// /// SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET. /// [YamlMember(Alias = "specReplicasPath")] [JsonProperty("specReplicasPath", NullValueHandling = NullValueHandling.Include)] public string SpecReplicasPath { get; set; } /// /// StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource will default to 0. /// [YamlMember(Alias = "statusReplicasPath")] [JsonProperty("statusReplicasPath", NullValueHandling = NullValueHandling.Include)] public string StatusReplicasPath { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceSubresourceStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza /// public partial class CustomResourceSubresourceStatusV1 { } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceSubresourceStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza /// public partial class CustomResourceSubresourceStatusV1Beta1 { } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceSubresourcesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceSubresources defines the status and scale subresources for CustomResources. /// public partial class CustomResourceSubresourcesV1 { /// /// scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object. /// [YamlMember(Alias = "scale")] [JsonProperty("scale", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceSubresourceScaleV1 Scale { get; set; } /// /// status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceSubresourceStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceSubresourcesV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceSubresources defines the status and scale subresources for CustomResources. /// public partial class CustomResourceSubresourcesV1Beta1 { /// /// Scale denotes the scale subresource for CustomResources /// [YamlMember(Alias = "scale")] [JsonProperty("scale", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceSubresourceScaleV1Beta1 Scale { get; set; } /// /// Status denotes the status subresource for CustomResources /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public CustomResourceSubresourceStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceValidationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceValidation is a list of validation methods for CustomResources. /// public partial class CustomResourceValidationV1 { /// /// openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning. /// [YamlMember(Alias = "openAPIV3Schema")] [JsonProperty("openAPIV3Schema", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsV1 OpenAPIV3Schema { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/CustomResourceValidationV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// CustomResourceValidation is a list of validation methods for CustomResources. /// public partial class CustomResourceValidationV1Beta1 { /// /// OpenAPIV3Schema is the OpenAPI v3 schema to be validated against. /// [YamlMember(Alias = "openAPIV3Schema")] [JsonProperty("openAPIV3Schema", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsV1Beta1 OpenAPIV3Schema { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonEndpointV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonEndpoint contains information about a single Daemon endpoint. /// public partial class DaemonEndpointV1 { /// /// Port number of the given endpoint. /// [YamlMember(Alias = "Port")] [JsonProperty("Port", NullValueHandling = NullValueHandling.Include)] public int Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetCondition describes the state of a DaemonSet at a certain point. /// public partial class DaemonSetConditionV1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of DaemonSet condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetCondition describes the state of a DaemonSet at a certain point. /// public partial class DaemonSetConditionV1Beta1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of DaemonSet condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetConditionV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetCondition describes the state of a DaemonSet at a certain point. /// public partial class DaemonSetConditionV1Beta2 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of DaemonSet condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetList is a collection of daemon sets. /// [KubeListItem("DaemonSet", "apps/v1")] [KubeObject("DaemonSetList", "apps/v1")] public partial class DaemonSetListV1 : KubeResourceListV1 { /// /// A list of daemon sets. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetList is a collection of daemon sets. /// [KubeListItem("DaemonSet", "extensions/v1beta1")] [KubeObject("DaemonSetList", "extensions/v1beta1")] public partial class DaemonSetListV1Beta1 : KubeResourceListV1 { /// /// A list of daemon sets. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetListV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetList is a collection of daemon sets. /// [KubeListItem("DaemonSet", "apps/v1beta2")] [KubeObject("DaemonSetList", "apps/v1beta2")] public partial class DaemonSetListV1Beta2 : KubeResourceListV1 { /// /// A list of daemon sets. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetSpec is the specification of a daemon set. /// public partial class DaemonSetSpecV1 { /// /// An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is "Always". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// An update strategy to replace existing DaemonSet pods with new pods. /// [YamlMember(Alias = "updateStrategy")] [JsonProperty("updateStrategy", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetUpdateStrategyV1 UpdateStrategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetSpec is the specification of a daemon set. /// public partial class DaemonSetSpecV1Beta1 { /// /// An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation. /// [YamlMember(Alias = "templateGeneration")] [JsonProperty("templateGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? TemplateGeneration { get; set; } /// /// A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// An update strategy to replace existing DaemonSet pods with new pods. /// [YamlMember(Alias = "updateStrategy")] [JsonProperty("updateStrategy", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetUpdateStrategyV1Beta1 UpdateStrategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetSpecV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetSpec is the specification of a daemon set. /// public partial class DaemonSetSpecV1Beta2 { /// /// An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// An update strategy to replace existing DaemonSet pods with new pods. /// [YamlMember(Alias = "updateStrategy")] [JsonProperty("updateStrategy", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetUpdateStrategyV1Beta2 UpdateStrategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetStatus represents the current status of a daemon set. /// public partial class DaemonSetStatusV1 { /// /// The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "currentNumberScheduled")] [JsonProperty("currentNumberScheduled", NullValueHandling = NullValueHandling.Include)] public int CurrentNumberScheduled { get; set; } /// /// The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "desiredNumberScheduled")] [JsonProperty("desiredNumberScheduled", NullValueHandling = NullValueHandling.Include)] public int DesiredNumberScheduled { get; set; } /// /// The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "numberMisscheduled")] [JsonProperty("numberMisscheduled", NullValueHandling = NullValueHandling.Include)] public int NumberMisscheduled { get; set; } /// /// The total number of nodes that are running updated daemon pod /// [YamlMember(Alias = "updatedNumberScheduled")] [JsonProperty("updatedNumberScheduled", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedNumberScheduled { get; set; } /// /// The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds) /// [YamlMember(Alias = "numberAvailable")] [JsonProperty("numberAvailable", NullValueHandling = NullValueHandling.Ignore)] public int? NumberAvailable { get; set; } /// /// The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds) /// [YamlMember(Alias = "numberUnavailable")] [JsonProperty("numberUnavailable", NullValueHandling = NullValueHandling.Ignore)] public int? NumberUnavailable { get; set; } /// /// The most recent generation observed by the daemon set controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// Represents the latest available observations of a DaemonSet's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } /// /// numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition. /// [YamlMember(Alias = "numberReady")] [JsonProperty("numberReady", NullValueHandling = NullValueHandling.Include)] public int NumberReady { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetStatus represents the current status of a daemon set. /// public partial class DaemonSetStatusV1Beta1 { /// /// The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "currentNumberScheduled")] [JsonProperty("currentNumberScheduled", NullValueHandling = NullValueHandling.Include)] public int CurrentNumberScheduled { get; set; } /// /// The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "desiredNumberScheduled")] [JsonProperty("desiredNumberScheduled", NullValueHandling = NullValueHandling.Include)] public int DesiredNumberScheduled { get; set; } /// /// The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "numberMisscheduled")] [JsonProperty("numberMisscheduled", NullValueHandling = NullValueHandling.Include)] public int NumberMisscheduled { get; set; } /// /// The total number of nodes that are running updated daemon pod /// [YamlMember(Alias = "updatedNumberScheduled")] [JsonProperty("updatedNumberScheduled", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedNumberScheduled { get; set; } /// /// The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds) /// [YamlMember(Alias = "numberAvailable")] [JsonProperty("numberAvailable", NullValueHandling = NullValueHandling.Ignore)] public int? NumberAvailable { get; set; } /// /// The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds) /// [YamlMember(Alias = "numberUnavailable")] [JsonProperty("numberUnavailable", NullValueHandling = NullValueHandling.Ignore)] public int? NumberUnavailable { get; set; } /// /// The most recent generation observed by the daemon set controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// Represents the latest available observations of a DaemonSet's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } /// /// The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready. /// [YamlMember(Alias = "numberReady")] [JsonProperty("numberReady", NullValueHandling = NullValueHandling.Include)] public int NumberReady { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetStatusV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetStatus represents the current status of a daemon set. /// public partial class DaemonSetStatusV1Beta2 { /// /// The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "currentNumberScheduled")] [JsonProperty("currentNumberScheduled", NullValueHandling = NullValueHandling.Include)] public int CurrentNumberScheduled { get; set; } /// /// The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "desiredNumberScheduled")] [JsonProperty("desiredNumberScheduled", NullValueHandling = NullValueHandling.Include)] public int DesiredNumberScheduled { get; set; } /// /// The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ /// [YamlMember(Alias = "numberMisscheduled")] [JsonProperty("numberMisscheduled", NullValueHandling = NullValueHandling.Include)] public int NumberMisscheduled { get; set; } /// /// The total number of nodes that are running updated daemon pod /// [YamlMember(Alias = "updatedNumberScheduled")] [JsonProperty("updatedNumberScheduled", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedNumberScheduled { get; set; } /// /// The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds) /// [YamlMember(Alias = "numberAvailable")] [JsonProperty("numberAvailable", NullValueHandling = NullValueHandling.Ignore)] public int? NumberAvailable { get; set; } /// /// The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds) /// [YamlMember(Alias = "numberUnavailable")] [JsonProperty("numberUnavailable", NullValueHandling = NullValueHandling.Ignore)] public int? NumberUnavailable { get; set; } /// /// The most recent generation observed by the daemon set controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// Represents the latest available observations of a DaemonSet's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } /// /// The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready. /// [YamlMember(Alias = "numberReady")] [JsonProperty("numberReady", NullValueHandling = NullValueHandling.Include)] public int NumberReady { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetUpdateStrategyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet. /// public partial class DaemonSetUpdateStrategyV1 { /// /// Rolling update config params. Present only if type = "RollingUpdate". /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateDaemonSetV1 RollingUpdate { get; set; } /// /// Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetUpdateStrategyV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class DaemonSetUpdateStrategyV1Beta1 { /// /// Rolling update config params. Present only if type = "RollingUpdate". /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateDaemonSetV1Beta1 RollingUpdate { get; set; } /// /// Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is OnDelete. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetUpdateStrategyV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet. /// public partial class DaemonSetUpdateStrategyV1Beta2 { /// /// Rolling update config params. Present only if type = "RollingUpdate". /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateDaemonSetV1Beta2 RollingUpdate { get; set; } /// /// Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DaemonSet represents the configuration of a daemon set. /// [KubeObject("DaemonSet", "apps/v1")] [KubeApi(KubeAction.List, "apis/apps/v1/daemonsets")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/daemonsets")] [KubeApi(KubeAction.List, "apis/apps/v1/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Create, "apis/apps/v1/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status")] public partial class DaemonSetV1 : KubeResourceV1 { /// /// The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetSpecV1 Spec { get; set; } /// /// The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set. /// [KubeObject("DaemonSet", "extensions/v1beta1")] [KubeApi(KubeAction.List, "apis/extensions/v1beta1/daemonsets")] [KubeApi(KubeAction.WatchList, "apis/extensions/v1beta1/watch/daemonsets")] [KubeApi(KubeAction.List, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Create, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Get, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Patch, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Delete, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Update, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.WatchList, "apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.DeleteCollection, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Get, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Patch, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status")] [KubeApi(KubeAction.Update, "apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status")] public partial class DaemonSetV1Beta1 : KubeResourceV1 { /// /// The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetSpecV1Beta1 Spec { get; set; } /// /// The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DaemonSetV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set. /// [KubeObject("DaemonSet", "apps/v1beta2")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/daemonsets")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/daemonsets")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Create, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status")] public partial class DaemonSetV1Beta2 : KubeResourceV1 { /// /// The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetSpecV1Beta2 Spec { get; set; } /// /// The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public DaemonSetStatusV1Beta2 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentCondition describes the state of a deployment at a certain point. /// public partial class DeploymentConditionV1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// The last time this condition was updated. /// [YamlMember(Alias = "lastUpdateTime")] [JsonProperty("lastUpdateTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastUpdateTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of deployment condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentCondition describes the state of a deployment at a certain point. /// public partial class DeploymentConditionV1Beta1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// The last time this condition was updated. /// [YamlMember(Alias = "lastUpdateTime")] [JsonProperty("lastUpdateTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastUpdateTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of deployment condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentConditionV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentCondition describes the state of a deployment at a certain point. /// public partial class DeploymentConditionV1Beta2 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// The last time this condition was updated. /// [YamlMember(Alias = "lastUpdateTime")] [JsonProperty("lastUpdateTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastUpdateTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of deployment condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentList is a list of Deployments. /// [KubeListItem("Deployment", "apps/v1")] [KubeObject("DeploymentList", "apps/v1")] public partial class DeploymentListV1 : KubeResourceListV1 { /// /// Items is the list of Deployments. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentList is a list of Deployments. /// [KubeListItem("Deployment", "apps/v1beta1")] [KubeObject("DeploymentList", "apps/v1beta1")] public partial class DeploymentListV1Beta1 : KubeResourceListV1 { /// /// Items is the list of Deployments. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentListV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentList is a list of Deployments. /// [KubeListItem("Deployment", "apps/v1beta2")] [KubeObject("DeploymentList", "apps/v1beta2")] public partial class DeploymentListV1Beta2 : KubeResourceListV1 { /// /// Items is the list of Deployments. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentRollbackV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED. DeploymentRollback stores the information required to rollback a deployment. /// public partial class DeploymentRollbackV1Beta1 : KubeObjectV1 { /// /// Required: This must match the Name of a deployment. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// The config of this deployment rollback. /// [YamlMember(Alias = "rollbackTo")] [JsonProperty("rollbackTo", NullValueHandling = NullValueHandling.Include)] public RollbackConfigV1Beta1 RollbackTo { get; set; } /// /// The annotations to be updated to a deployment /// [YamlMember(Alias = "updatedAnnotations")] [JsonProperty("updatedAnnotations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary UpdatedAnnotations { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeUpdatedAnnotations() => UpdatedAnnotations.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentSpec is the specification of the desired behavior of the Deployment. /// public partial class DeploymentSpecV1 { /// /// Indicates that the deployment is paused. /// [YamlMember(Alias = "paused")] [JsonProperty("paused", NullValueHandling = NullValueHandling.Ignore)] public bool? Paused { get; set; } /// /// Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is "Always". /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. /// [YamlMember(Alias = "progressDeadlineSeconds")] [JsonProperty("progressDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? ProgressDeadlineSeconds { get; set; } /// /// Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// The deployment strategy to use to replace existing pods with new ones. /// [RetainKeysStrategy] [YamlMember(Alias = "strategy")] [JsonProperty("strategy", NullValueHandling = NullValueHandling.Ignore)] public DeploymentStrategyV1 Strategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentSpec is the specification of the desired behavior of the Deployment. /// public partial class DeploymentSpecV1Beta1 { /// /// Indicates that the deployment is paused and will not be processed by the deployment controller. /// [YamlMember(Alias = "paused")] [JsonProperty("paused", NullValueHandling = NullValueHandling.Ignore)] public bool? Paused { get; set; } /// /// Template describes the pods that will be created. /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done. /// [YamlMember(Alias = "rollbackTo")] [JsonProperty("rollbackTo", NullValueHandling = NullValueHandling.Ignore)] public RollbackConfigV1Beta1 RollbackTo { get; set; } /// /// Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is not set by default. /// [YamlMember(Alias = "progressDeadlineSeconds")] [JsonProperty("progressDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? ProgressDeadlineSeconds { get; set; } /// /// Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// The deployment strategy to use to replace existing pods with new ones. /// [RetainKeysStrategy] [YamlMember(Alias = "strategy")] [JsonProperty("strategy", NullValueHandling = NullValueHandling.Ignore)] public DeploymentStrategyV1Beta1 Strategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentSpecV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentSpec is the specification of the desired behavior of the Deployment. /// public partial class DeploymentSpecV1Beta2 { /// /// Indicates that the deployment is paused. /// [YamlMember(Alias = "paused")] [JsonProperty("paused", NullValueHandling = NullValueHandling.Ignore)] public bool? Paused { get; set; } /// /// Template describes the pods that will be created. /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. /// [YamlMember(Alias = "progressDeadlineSeconds")] [JsonProperty("progressDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? ProgressDeadlineSeconds { get; set; } /// /// Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// The deployment strategy to use to replace existing pods with new ones. /// [YamlMember(Alias = "strategy")] [JsonProperty("strategy", NullValueHandling = NullValueHandling.Ignore)] public DeploymentStrategyV1Beta2 Strategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentStatus is the most recently observed status of the Deployment. /// public partial class DeploymentStatusV1 { /// /// The generation observed by the deployment controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a deployment's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// readyReplicas is the number of pods targeted by this Deployment with a Ready Condition. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// Total number of non-terminated pods targeted by this deployment (their labels match the selector). /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. /// [YamlMember(Alias = "unavailableReplicas")] [JsonProperty("unavailableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UnavailableReplicas { get; set; } /// /// Total number of non-terminated pods targeted by this deployment that have the desired template spec. /// [YamlMember(Alias = "updatedReplicas")] [JsonProperty("updatedReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedReplicas { get; set; } /// /// Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentStatus is the most recently observed status of the Deployment. /// public partial class DeploymentStatusV1Beta1 { /// /// The generation observed by the deployment controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a deployment's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// Total number of ready pods targeted by this deployment. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// Total number of non-terminated pods targeted by this deployment (their labels match the selector). /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. /// [YamlMember(Alias = "unavailableReplicas")] [JsonProperty("unavailableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UnavailableReplicas { get; set; } /// /// Total number of non-terminated pods targeted by this deployment that have the desired template spec. /// [YamlMember(Alias = "updatedReplicas")] [JsonProperty("updatedReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedReplicas { get; set; } /// /// Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentStatusV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentStatus is the most recently observed status of the Deployment. /// public partial class DeploymentStatusV1Beta2 { /// /// The generation observed by the deployment controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a deployment's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// Total number of ready pods targeted by this deployment. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// Total number of non-terminated pods targeted by this deployment (their labels match the selector). /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. /// [YamlMember(Alias = "unavailableReplicas")] [JsonProperty("unavailableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UnavailableReplicas { get; set; } /// /// Total number of non-terminated pods targeted by this deployment that have the desired template spec. /// [YamlMember(Alias = "updatedReplicas")] [JsonProperty("updatedReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedReplicas { get; set; } /// /// Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentStrategyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentStrategy describes how to replace existing pods with new ones. /// public partial class DeploymentStrategyV1 { /// /// Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateDeploymentV1 RollingUpdate { get; set; } /// /// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentStrategyV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentStrategy describes how to replace existing pods with new ones. /// public partial class DeploymentStrategyV1Beta1 { /// /// Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateDeploymentV1Beta1 RollingUpdate { get; set; } /// /// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentStrategyV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeploymentStrategy describes how to replace existing pods with new ones. /// public partial class DeploymentStrategyV1Beta2 { /// /// Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateDeploymentV1Beta2 RollingUpdate { get; set; } /// /// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Deployment enables declarative updates for Pods and ReplicaSets. /// [KubeObject("Deployment", "apps/v1")] [KubeApi(KubeAction.List, "apis/apps/v1/deployments")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/deployments")] [KubeApi(KubeAction.List, "apis/apps/v1/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Create, "apis/apps/v1/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/deployments/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/deployments/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/deployments/{name}/status")] public partial class DeploymentV1 : KubeResourceV1 { /// /// Specification of the desired behavior of the Deployment. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public DeploymentSpecV1 Spec { get; set; } /// /// Most recently observed status of the Deployment. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public DeploymentStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets. /// [KubeObject("Deployment", "apps/v1beta1")] [KubeApi(KubeAction.List, "apis/apps/v1beta1/deployments")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta1/watch/deployments")] [KubeApi(KubeAction.List, "apis/apps/v1beta1/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Create, "apis/apps/v1beta1/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Get, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta1/watch/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta1/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Get, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status")] public partial class DeploymentV1Beta1 : KubeResourceV1 { /// /// Specification of the desired behavior of the Deployment. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public DeploymentSpecV1Beta1 Spec { get; set; } /// /// Most recently observed status of the Deployment. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public DeploymentStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeploymentV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets. /// [KubeObject("Deployment", "apps/v1beta2")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/deployments")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/deployments")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Create, "apis/apps/v1beta2/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta2/namespaces/{namespace}/deployments")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status")] public partial class DeploymentV1Beta2 : KubeResourceV1 { /// /// Specification of the desired behavior of the Deployment. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public DeploymentSpecV1Beta2 Spec { get; set; } /// /// Most recently observed status of the Deployment. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public DeploymentStatusV1Beta2 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceAllocationConfigurationV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceAllocationConfiguration gets embedded in an AllocationResult. /// public partial class DeviceAllocationConfigurationV1Alpha3 { /// /// Opaque provides driver-specific configuration parameters. /// [YamlMember(Alias = "opaque")] [JsonProperty("opaque", NullValueHandling = NullValueHandling.Ignore)] public OpaqueDeviceConfigurationV1Alpha3 Opaque { get; set; } /// /// Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim. /// [YamlMember(Alias = "source")] [JsonProperty("source", NullValueHandling = NullValueHandling.Include)] public string Source { get; set; } /// /// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. /// [YamlMember(Alias = "requests")] [JsonProperty("requests", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Requests { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequests() => Requests.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/DeviceAllocationResultV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceAllocationResult is the result of allocating devices. /// public partial class DeviceAllocationResultV1Alpha3 { /// /// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. /// /// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. /// [YamlMember(Alias = "config")] [JsonProperty("config", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Config { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConfig() => Config.Count > 0; /// /// Results lists all allocated devices. /// [YamlMember(Alias = "results")] [JsonProperty("results", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Results { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResults() => Results.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/DeviceAttributeV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceAttribute must have exactly one field set. /// public partial class DeviceAttributeV1Alpha3 { /// /// StringValue is a string. Must not be longer than 64 characters. /// [YamlMember(Alias = "string")] [JsonProperty("string", NullValueHandling = NullValueHandling.Ignore)] public string String { get; set; } /// /// BoolValue is a true/false value. /// [YamlMember(Alias = "bool")] [JsonProperty("bool", NullValueHandling = NullValueHandling.Ignore)] public bool? Bool { get; set; } /// /// VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// IntValue is a number. /// [YamlMember(Alias = "int")] [JsonProperty("int", NullValueHandling = NullValueHandling.Ignore)] public long? Int { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceClaimConfigurationV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. /// public partial class DeviceClaimConfigurationV1Alpha3 { /// /// Opaque provides driver-specific configuration parameters. /// [YamlMember(Alias = "opaque")] [JsonProperty("opaque", NullValueHandling = NullValueHandling.Ignore)] public OpaqueDeviceConfigurationV1Alpha3 Opaque { get; set; } /// /// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. /// [YamlMember(Alias = "requests")] [JsonProperty("requests", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Requests { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequests() => Requests.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/DeviceClaimV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceClaim defines how to request devices with a ResourceClaim. /// public partial class DeviceClaimV1Alpha3 { /// /// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. /// [YamlMember(Alias = "config")] [JsonProperty("config", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Config { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConfig() => Config.Count > 0; /// /// These constraints must be satisfied by the set of devices that get allocated for the claim. /// [YamlMember(Alias = "constraints")] [JsonProperty("constraints", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Constraints { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConstraints() => Constraints.Count > 0; /// /// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. /// [YamlMember(Alias = "requests")] [JsonProperty("requests", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Requests { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequests() => Requests.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/DeviceClassConfigurationV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceClassConfiguration is used in DeviceClass. /// public partial class DeviceClassConfigurationV1Alpha3 { /// /// Opaque provides driver-specific configuration parameters. /// [YamlMember(Alias = "opaque")] [JsonProperty("opaque", NullValueHandling = NullValueHandling.Ignore)] public OpaqueDeviceConfigurationV1Alpha3 Opaque { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceClassListV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceClassList is a collection of classes. /// [KubeListItem("DeviceClass", "resource.k8s.io/v1alpha3")] [KubeObject("DeviceClassList", "resource.k8s.io/v1alpha3")] public partial class DeviceClassListV1Alpha3 : KubeResourceListV1 { /// /// Items is the list of resource classes. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/DeviceClassSpecV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. /// public partial class DeviceClassSpecV1Alpha3 { /// /// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. /// /// They are passed to the driver, but are not considered while allocating the claim. /// [YamlMember(Alias = "config")] [JsonProperty("config", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Config { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConfig() => Config.Count > 0; /// /// Each selector must be satisfied by a device which is claimed via this class. /// [YamlMember(Alias = "selectors")] [JsonProperty("selectors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Selectors { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSelectors() => Selectors.Count > 0; /// /// 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 claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation. /// /// Setting this field is optional. If unset, all Nodes are candidates. /// /// This is an alpha field and requires enabling the DRAControlPlaneController feature gate. /// [YamlMember(Alias = "suitableNodes")] [JsonProperty("suitableNodes", NullValueHandling = NullValueHandling.Ignore)] public NodeSelectorV1 SuitableNodes { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceClassV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. /// /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. /// [KubeObject("DeviceClass", "resource.k8s.io/v1alpha3")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/deviceclasses")] [KubeApi(KubeAction.Create, "apis/resource.k8s.io/v1alpha3/deviceclasses")] [KubeApi(KubeAction.Get, "apis/resource.k8s.io/v1alpha3/deviceclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/resource.k8s.io/v1alpha3/deviceclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/resource.k8s.io/v1alpha3/deviceclasses/{name}")] [KubeApi(KubeAction.Update, "apis/resource.k8s.io/v1alpha3/deviceclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/deviceclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/resource.k8s.io/v1alpha3/deviceclasses")] [KubeApi(KubeAction.Watch, "apis/resource.k8s.io/v1alpha3/watch/deviceclasses/{name}")] public partial class DeviceClassV1Alpha3 : KubeResourceV1 { /// /// Spec defines what can be allocated and how to configure it. /// /// This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. /// /// Changing the spec automatically increments the metadata.generation number. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public DeviceClassSpecV1Alpha3 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceConstraintV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceConstraint must have exactly one field set besides Requests. /// public partial class DeviceConstraintV1Alpha3 { /// /// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. /// /// For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. /// /// Must include the domain qualifier. /// [YamlMember(Alias = "matchAttribute")] [JsonProperty("matchAttribute", NullValueHandling = NullValueHandling.Ignore)] public string MatchAttribute { get; set; } /// /// Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. /// [YamlMember(Alias = "requests")] [JsonProperty("requests", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Requests { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequests() => Requests.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/DeviceRequestAllocationResultV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceRequestAllocationResult contains the allocation result for one request. /// public partial class DeviceRequestAllocationResultV1Alpha3 { /// /// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. /// [YamlMember(Alias = "device")] [JsonProperty("device", NullValueHandling = NullValueHandling.Include)] public string Device { get; set; } /// /// This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`). /// /// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. /// [YamlMember(Alias = "pool")] [JsonProperty("pool", NullValueHandling = NullValueHandling.Include)] public string Pool { get; set; } /// /// Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. /// /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } /// /// Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request. /// [YamlMember(Alias = "request")] [JsonProperty("request", NullValueHandling = NullValueHandling.Include)] public string Request { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceRequestV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. /// /// A DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request. /// public partial class DeviceRequestV1Alpha3 { /// /// AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are: /// /// - ExactCount: This request is for a specific number of devices. /// This is the default. The exact number is provided in the /// count field. /// /// - All: This request is for all of the matching devices in a pool. /// Allocation will fail if some devices are already allocated, /// unless adminAccess is requested. /// /// If AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field. /// /// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. /// [YamlMember(Alias = "allocationMode")] [JsonProperty("allocationMode", NullValueHandling = NullValueHandling.Ignore)] public string AllocationMode { get; set; } /// /// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request. /// /// A class is required. Which classes are available depends on the cluster. /// /// Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference. /// [YamlMember(Alias = "deviceClassName")] [JsonProperty("deviceClassName", NullValueHandling = NullValueHandling.Include)] public string DeviceClassName { get; set; } /// /// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. /// /// Must be a DNS label. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations. /// [YamlMember(Alias = "adminAccess")] [JsonProperty("adminAccess", NullValueHandling = NullValueHandling.Ignore)] public bool? AdminAccess { get; set; } /// /// Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered. /// [YamlMember(Alias = "selectors")] [JsonProperty("selectors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Selectors { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSelectors() => Selectors.Count > 0; /// /// Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one. /// [YamlMember(Alias = "count")] [JsonProperty("count", NullValueHandling = NullValueHandling.Ignore)] public long? Count { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceSelectorV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DeviceSelector must have exactly one field set. /// public partial class DeviceSelectorV1Alpha3 { /// /// CEL contains a CEL expression for selecting a device. /// [YamlMember(Alias = "cel")] [JsonProperty("cel", NullValueHandling = NullValueHandling.Ignore)] public CELDeviceSelectorV1Alpha3 Cel { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DeviceV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. /// public partial class DeviceV1Alpha3 { /// /// Basic defines one device instance. /// [YamlMember(Alias = "basic")] [JsonProperty("basic", NullValueHandling = NullValueHandling.Ignore)] public BasicDeviceV1Alpha3 Basic { get; set; } /// /// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DownwardAPIProjectionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode. /// [KubeListItem("DownwardAPIVolumeFile", "v1")] public partial class DownwardAPIProjectionV1 { /// /// Items is a list of DownwardAPIVolume file /// [YamlMember(Alias = "items")] [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Items { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeItems() => Items.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/DownwardAPIVolumeFileV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DownwardAPIVolumeFile represents information to create the file containing the pod field /// public partial class DownwardAPIVolumeFileV1 { /// /// 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. /// [YamlMember(Alias = "mode")] [JsonProperty("mode", NullValueHandling = NullValueHandling.Ignore)] public int? Mode { get; set; } /// /// Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported. /// [YamlMember(Alias = "fieldRef")] [JsonProperty("fieldRef", NullValueHandling = NullValueHandling.Ignore)] public ObjectFieldSelectorV1 FieldRef { get; set; } /// /// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. /// [YamlMember(Alias = "resourceFieldRef")] [JsonProperty("resourceFieldRef", NullValueHandling = NullValueHandling.Ignore)] public ResourceFieldSelectorV1 ResourceFieldRef { get; set; } /// /// Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..' /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/DownwardAPIVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling. /// [KubeListItem("DownwardAPIVolumeFile", "v1")] public partial class DownwardAPIVolumeSourceV1 { /// /// Optional: mode bits to use on created files by default. Must be a 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. /// [YamlMember(Alias = "defaultMode")] [JsonProperty("defaultMode", NullValueHandling = NullValueHandling.Ignore)] public int? DefaultMode { get; set; } /// /// Items is a list of downward API volume file /// [YamlMember(Alias = "items")] [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Items { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeItems() => Items.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/EmptyDirVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling. /// public partial class EmptyDirVolumeSourceV1 { /// /// medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir /// [YamlMember(Alias = "medium")] [JsonProperty("medium", NullValueHandling = NullValueHandling.Ignore)] public string Medium { get; set; } /// /// sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir /// [YamlMember(Alias = "sizeLimit")] [JsonProperty("sizeLimit", NullValueHandling = NullValueHandling.Ignore)] public string SizeLimit { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EndpointAddressV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointAddress is a tuple that describes single IP address. /// public partial class EndpointAddressV1 { /// /// The Hostname of this endpoint /// [YamlMember(Alias = "hostname")] [JsonProperty("hostname", NullValueHandling = NullValueHandling.Ignore)] public string Hostname { get; set; } /// /// Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node. /// [YamlMember(Alias = "nodeName")] [JsonProperty("nodeName", NullValueHandling = NullValueHandling.Ignore)] public string NodeName { get; set; } /// /// Reference to object providing the endpoint. /// [YamlMember(Alias = "targetRef")] [JsonProperty("targetRef", NullValueHandling = NullValueHandling.Ignore)] public ObjectReferenceV1 TargetRef { get; set; } /// /// The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16). /// [YamlMember(Alias = "ip")] [JsonProperty("ip", NullValueHandling = NullValueHandling.Include)] public string Ip { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EndpointConditionsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointConditions represents the current condition of an endpoint. /// public partial class EndpointConditionsV1 { /// /// serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition. /// [YamlMember(Alias = "serving")] [JsonProperty("serving", NullValueHandling = NullValueHandling.Ignore)] public bool? Serving { get; set; } /// /// terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating. /// [YamlMember(Alias = "terminating")] [JsonProperty("terminating", NullValueHandling = NullValueHandling.Ignore)] public bool? Terminating { get; set; } /// /// ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be "true" for terminating endpoints, except when the normal readiness behavior is being explicitly overridden, for example when the associated Service has set the publishNotReadyAddresses flag. /// [YamlMember(Alias = "ready")] [JsonProperty("ready", NullValueHandling = NullValueHandling.Ignore)] public bool? Ready { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EndpointHintsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointHints provides hints describing how an endpoint should be consumed. /// public partial class EndpointHintsV1 { /// /// forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing. /// [YamlMember(Alias = "forZones")] [JsonProperty("forZones", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ForZones { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeForZones() => ForZones.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/EndpointPortV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointPort represents a Port used by an EndpointSlice /// public partial class EndpointPortV1 { /// /// name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: /// /// * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). /// /// * Kubernetes-defined prefixed names: /// * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- /// * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 /// * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 /// /// * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol. /// [YamlMember(Alias = "appProtocol")] [JsonProperty("appProtocol", NullValueHandling = NullValueHandling.Ignore)] public string AppProtocol { get; set; } /// /// protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP. /// [YamlMember(Alias = "protocol")] [JsonProperty("protocol", NullValueHandling = NullValueHandling.Ignore)] public string Protocol { get; set; } /// /// port represents the port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Ignore)] public int? Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EndpointSliceListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointSliceList represents a list of endpoint slices /// [KubeListItem("EndpointSlice", "discovery.k8s.io/v1")] [KubeObject("EndpointSliceList", "discovery.k8s.io/v1")] public partial class EndpointSliceListV1 : KubeResourceListV1 { /// /// items is the list of endpoint slices /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/EndpointSliceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints. /// [KubeObject("EndpointSlice", "discovery.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/discovery.k8s.io/v1/endpointslices")] [KubeApi(KubeAction.WatchList, "apis/discovery.k8s.io/v1/watch/endpointslices")] [KubeApi(KubeAction.List, "apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices")] [KubeApi(KubeAction.Create, "apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices")] [KubeApi(KubeAction.Get, "apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}")] [KubeApi(KubeAction.Patch, "apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}")] [KubeApi(KubeAction.Delete, "apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}")] [KubeApi(KubeAction.Update, "apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}")] [KubeApi(KubeAction.WatchList, "apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices")] [KubeApi(KubeAction.DeleteCollection, "apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices")] [KubeApi(KubeAction.Watch, "apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices/{name}")] public partial class EndpointSliceV1 : KubeResourceV1 { /// /// addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. /// [YamlMember(Alias = "addressType")] [JsonProperty("addressType", NullValueHandling = NullValueHandling.Include)] public string AddressType { get; set; } /// /// endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints. /// [YamlMember(Alias = "endpoints")] [JsonProperty("endpoints", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Endpoints { get; } = new List(); /// /// ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates "all ports". Each slice may include a maximum of 100 ports. /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/EndpointSubsetV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given: /// /// { /// Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], /// Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] /// } /// /// The resulting set of endpoints can be viewed as: /// /// a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], /// b: [ 10.10.1.1:309, 10.10.2.2:309 ] /// public partial class EndpointSubsetV1 { /// /// IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize. /// [YamlMember(Alias = "addresses")] [JsonProperty("addresses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Addresses { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAddresses() => Addresses.Count > 0; /// /// 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. /// [YamlMember(Alias = "notReadyAddresses")] [JsonProperty("notReadyAddresses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NotReadyAddresses { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNotReadyAddresses() => NotReadyAddresses.Count > 0; /// /// Port numbers available on the related IP addresses. /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/EndpointV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Endpoint represents a single logical "backend" implementing a service. /// public partial class EndpointV1 { /// /// hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation. /// [YamlMember(Alias = "hostname")] [JsonProperty("hostname", NullValueHandling = NullValueHandling.Ignore)] public string Hostname { get; set; } /// /// nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node. /// [YamlMember(Alias = "nodeName")] [JsonProperty("nodeName", NullValueHandling = NullValueHandling.Ignore)] public string NodeName { get; set; } /// /// zone is the name of the Zone this endpoint exists in. /// [YamlMember(Alias = "zone")] [JsonProperty("zone", NullValueHandling = NullValueHandling.Ignore)] public string Zone { get; set; } /// /// targetRef is a reference to a Kubernetes object that represents this endpoint. /// [YamlMember(Alias = "targetRef")] [JsonProperty("targetRef", NullValueHandling = NullValueHandling.Ignore)] public ObjectReferenceV1 TargetRef { get; set; } /// /// addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100. These are all assumed to be fungible and clients may choose to only use the first element. Refer to: https://issue.k8s.io/106267 /// [YamlMember(Alias = "addresses")] [JsonProperty("addresses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Addresses { get; } = new List(); /// /// conditions contains information about the current status of the endpoint. /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", NullValueHandling = NullValueHandling.Ignore)] public EndpointConditionsV1 Conditions { get; set; } /// /// hints contains information associated with how an endpoint should be consumed. /// [YamlMember(Alias = "hints")] [JsonProperty("hints", NullValueHandling = NullValueHandling.Ignore)] public EndpointHintsV1 Hints { get; set; } /// /// deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24). While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead. /// [YamlMember(Alias = "deprecatedTopology")] [JsonProperty("deprecatedTopology", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary DeprecatedTopology { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDeprecatedTopology() => DeprecatedTopology.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/EndpointsListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EndpointsList is a list of endpoints. /// [KubeListItem("Endpoints", "v1")] [KubeObject("EndpointsList", "v1")] public partial class EndpointsListV1 : KubeResourceListV1 { /// /// List of endpoints. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/EndpointsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Endpoints is a collection of endpoints that implement the actual service. Example: /// /// Name: "mysvc", /// Subsets: [ /// { /// Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], /// Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] /// }, /// { /// Addresses: [{"ip": "10.10.3.3"}], /// Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}] /// }, /// ] /// [KubeObject("Endpoints", "v1")] [KubeApi(KubeAction.List, "api/v1/endpoints")] [KubeApi(KubeAction.WatchList, "api/v1/watch/endpoints")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/endpoints")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/endpoints")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/endpoints/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/endpoints/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/endpoints/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/endpoints/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/endpoints")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/endpoints")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/endpoints/{name}")] public partial class EndpointsV1 : KubeResourceV1 { /// /// The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service. /// [YamlMember(Alias = "subsets")] [JsonProperty("subsets", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subsets { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSubsets() => Subsets.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/EnvFromSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EnvFromSource represents the source of a set of ConfigMaps /// public partial class EnvFromSourceV1 { /// /// The ConfigMap to select from /// [YamlMember(Alias = "configMapRef")] [JsonProperty("configMapRef", NullValueHandling = NullValueHandling.Ignore)] public ConfigMapEnvSourceV1 ConfigMapRef { get; set; } /// /// The Secret to select from /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretEnvSourceV1 SecretRef { get; set; } /// /// An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. /// [YamlMember(Alias = "prefix")] [JsonProperty("prefix", NullValueHandling = NullValueHandling.Ignore)] public string Prefix { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EnvVarSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EnvVarSource represents a source for the value of an EnvVar. /// public partial class EnvVarSourceV1 { /// /// Selects a key of a ConfigMap. /// [YamlMember(Alias = "configMapKeyRef")] [JsonProperty("configMapKeyRef", NullValueHandling = NullValueHandling.Ignore)] public ConfigMapKeySelectorV1 ConfigMapKeyRef { get; set; } /// /// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. /// [YamlMember(Alias = "fieldRef")] [JsonProperty("fieldRef", NullValueHandling = NullValueHandling.Ignore)] public ObjectFieldSelectorV1 FieldRef { get; set; } /// /// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. /// [YamlMember(Alias = "resourceFieldRef")] [JsonProperty("resourceFieldRef", NullValueHandling = NullValueHandling.Ignore)] public ResourceFieldSelectorV1 ResourceFieldRef { get; set; } /// /// Selects a key of a secret in the pod's namespace /// [YamlMember(Alias = "secretKeyRef")] [JsonProperty("secretKeyRef", NullValueHandling = NullValueHandling.Ignore)] public SecretKeySelectorV1 SecretKeyRef { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EnvVarV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EnvVar represents an environment variable present in a Container. /// public partial class EnvVarV1 { /// /// Name of the environment variable. Must be a C_IDENTIFIER. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. 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. Defaults to "". /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Ignore)] public string Value { get; set; } /// /// Source for the environment variable's value. Cannot be used if value is not empty. /// [YamlMember(Alias = "valueFrom")] [JsonProperty("valueFrom", NullValueHandling = NullValueHandling.Ignore)] public EnvVarSourceV1 ValueFrom { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EphemeralContainerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. /// /// To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. /// public partial class EphemeralContainerV1 { /// /// 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 /// [YamlMember(Alias = "command")] [JsonProperty("command", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Command { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCommand() => Command.Count > 0; /// /// Container image name. More info: https://kubernetes.io/docs/concepts/containers/images /// [YamlMember(Alias = "image")] [JsonProperty("image", NullValueHandling = NullValueHandling.Ignore)] public string Image { get; set; } /// /// Lifecycle is not allowed for ephemeral containers. /// [YamlMember(Alias = "lifecycle")] [JsonProperty("lifecycle", NullValueHandling = NullValueHandling.Ignore)] public LifecycleV1 Lifecycle { get; set; } /// /// Probes are not allowed for ephemeral containers. /// [YamlMember(Alias = "livenessProbe")] [JsonProperty("livenessProbe", NullValueHandling = NullValueHandling.Ignore)] public ProbeV1 LivenessProbe { get; set; } /// /// Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Probes are not allowed for ephemeral containers. /// [YamlMember(Alias = "readinessProbe")] [JsonProperty("readinessProbe", NullValueHandling = NullValueHandling.Ignore)] public ProbeV1 ReadinessProbe { get; set; } /// /// Probes are not allowed for ephemeral containers. /// [YamlMember(Alias = "startupProbe")] [JsonProperty("startupProbe", NullValueHandling = NullValueHandling.Ignore)] public ProbeV1 StartupProbe { get; set; } /// /// Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false /// [YamlMember(Alias = "stdinOnce")] [JsonProperty("stdinOnce", NullValueHandling = NullValueHandling.Ignore)] public bool? StdinOnce { get; set; } /// /// If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. /// /// The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. /// [YamlMember(Alias = "targetContainerName")] [JsonProperty("targetContainerName", NullValueHandling = NullValueHandling.Ignore)] public string TargetContainerName { get; set; } /// /// Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated. /// [YamlMember(Alias = "terminationMessagePath")] [JsonProperty("terminationMessagePath", NullValueHandling = NullValueHandling.Ignore)] public string TerminationMessagePath { get; set; } /// /// List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. /// [YamlMember(Alias = "envFrom")] [JsonProperty("envFrom", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List EnvFrom { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnvFrom() => EnvFrom.Count > 0; /// /// Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false. /// [YamlMember(Alias = "stdin")] [JsonProperty("stdin", NullValueHandling = NullValueHandling.Ignore)] public bool? Stdin { get; set; } /// /// Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated. /// [YamlMember(Alias = "workingDir")] [JsonProperty("workingDir", NullValueHandling = NullValueHandling.Ignore)] public string WorkingDir { get; set; } /// /// Arguments to the entrypoint. The image's CMD 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 /// [YamlMember(Alias = "args")] [JsonProperty("args", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Args { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeArgs() => Args.Count > 0; /// /// Ports are not allowed for ephemeral containers. /// [YamlMember(Alias = "ports")] [MergeStrategy(Key = "containerPort")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; /// /// Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", NullValueHandling = NullValueHandling.Ignore)] public ResourceRequirementsV1 Resources { get; set; } /// /// volumeDevices is the list of block devices to be used by the container. /// [MergeStrategy(Key = "devicePath")] [YamlMember(Alias = "volumeDevices")] [JsonProperty("volumeDevices", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeDevices { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeDevices() => VolumeDevices.Count > 0; /// /// Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated. /// [MergeStrategy(Key = "mountPath")] [YamlMember(Alias = "volumeMounts")] [JsonProperty("volumeMounts", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeMounts { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeMounts() => VolumeMounts.Count > 0; /// /// Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. /// [YamlMember(Alias = "securityContext")] [JsonProperty("securityContext", NullValueHandling = NullValueHandling.Ignore)] public SecurityContextV1 SecurityContext { get; set; } /// /// List of environment variables to set in the container. Cannot be updated. /// [YamlMember(Alias = "env")] [MergeStrategy(Key = "name")] [JsonProperty("env", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Env { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnv() => Env.Count > 0; /// /// Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images /// [YamlMember(Alias = "imagePullPolicy")] [JsonProperty("imagePullPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ImagePullPolicy { get; set; } /// /// Resources resize policy for the container. /// [YamlMember(Alias = "resizePolicy")] [JsonProperty("resizePolicy", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResizePolicy { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResizePolicy() => ResizePolicy.Count > 0; /// /// Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers. /// [YamlMember(Alias = "restartPolicy")] [JsonProperty("restartPolicy", NullValueHandling = NullValueHandling.Ignore)] public string RestartPolicy { get; set; } /// /// Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated. /// [YamlMember(Alias = "terminationMessagePolicy")] [JsonProperty("terminationMessagePolicy", NullValueHandling = NullValueHandling.Ignore)] public string TerminationMessagePolicy { get; set; } /// /// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false. /// [YamlMember(Alias = "tty")] [JsonProperty("tty", NullValueHandling = NullValueHandling.Ignore)] public bool? Tty { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EphemeralVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents an ephemeral volume that is handled by a normal storage driver. /// public partial class EphemeralVolumeSourceV1 { /// /// Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). /// /// An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. /// /// This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. /// /// Required, must not be nil. /// [YamlMember(Alias = "volumeClaimTemplate")] [JsonProperty("volumeClaimTemplate", NullValueHandling = NullValueHandling.Ignore)] public PersistentVolumeClaimTemplateV1 VolumeClaimTemplate { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EventListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EventList is a list of events. /// [KubeListItem("Event", "v1")] [KubeObject("EventList", "v1")] public partial class EventListV1 : KubeResourceListV1 { /// /// List of events /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/EventListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EventList is a list of Event objects. /// [KubeListItem("Event", "events.k8s.io/v1beta1")] [KubeObject("EventList", "events.k8s.io/v1beta1")] public partial class EventListV1Beta1 : KubeResourceListV1 { /// /// Items is a list of schema objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/EventSeriesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in "k8s.io/client-go/tools/events/event_broadcaster.go" shows how this struct is updated on heartbeats and can guide customized reporter implementations. /// public partial class EventSeriesV1 { /// /// lastObservedTime is the time when last Event from the series was seen before last heartbeat. /// [YamlMember(Alias = "lastObservedTime")] [JsonProperty("lastObservedTime", NullValueHandling = NullValueHandling.Include)] public DateTime? LastObservedTime { get; set; } /// /// count is the number of occurrences in this series up to the last heartbeat time. /// [YamlMember(Alias = "count")] [JsonProperty("count", NullValueHandling = NullValueHandling.Include)] public int Count { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EventSeriesV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. /// public partial class EventSeriesV1Beta1 { /// /// Time when last Event from the series was seen before last heartbeat. /// [YamlMember(Alias = "lastObservedTime")] [JsonProperty("lastObservedTime", NullValueHandling = NullValueHandling.Include)] public MicroTimeV1? LastObservedTime { get; set; } /// /// Information whether this series is ongoing or finished. /// [YamlMember(Alias = "state")] [JsonProperty("state", NullValueHandling = NullValueHandling.Include)] public string State { get; set; } /// /// Number of occurrences in this series up to the last heartbeat time /// [YamlMember(Alias = "count")] [JsonProperty("count", NullValueHandling = NullValueHandling.Include)] public int Count { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EventSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// EventSource contains information for an event. /// public partial class EventSourceV1 { /// /// Component from which the event is generated. /// [YamlMember(Alias = "component")] [JsonProperty("component", NullValueHandling = NullValueHandling.Ignore)] public string Component { get; set; } /// /// Node name on which the event is generated. /// [YamlMember(Alias = "host")] [JsonProperty("host", NullValueHandling = NullValueHandling.Ignore)] public string Host { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EventV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data. /// [KubeObject("Event", "v1")] [KubeApi(KubeAction.List, "api/v1/events")] [KubeApi(KubeAction.WatchList, "api/v1/watch/events")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/events")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/events")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/events")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/events")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/events/{name}")] public partial class EventV1 : KubeResourceV1 { /// /// Optional secondary object for more complex actions. /// [YamlMember(Alias = "related")] [JsonProperty("related", NullValueHandling = NullValueHandling.Ignore)] public ObjectReferenceV1 Related { get; set; } /// /// Time when this Event was first observed. /// [YamlMember(Alias = "eventTime")] [JsonProperty("eventTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? EventTime { get; set; } /// /// A human-readable description of the status of this operation. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// ID of the controller instance, e.g. `kubelet-xyzf`. /// [YamlMember(Alias = "reportingInstance")] [JsonProperty("reportingInstance", NullValueHandling = NullValueHandling.Ignore)] public string ReportingInstance { get; set; } /// /// The component reporting this event. Should be a short machine understandable string. /// [YamlMember(Alias = "source")] [JsonProperty("source", NullValueHandling = NullValueHandling.Ignore)] public EventSourceV1 Source { get; set; } /// /// Type of this event (Normal, Warning), new types could be added in the future /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// What action was taken/failed regarding to the Regarding object. /// [YamlMember(Alias = "action")] [JsonProperty("action", NullValueHandling = NullValueHandling.Ignore)] public string Action { get; set; } /// /// This should be a short, machine understandable string that gives the reason for the transition into the object's current status. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// The time at which the event was first recorded. (Time of server receipt is in TypeMeta.) /// [YamlMember(Alias = "firstTimestamp")] [JsonProperty("firstTimestamp", NullValueHandling = NullValueHandling.Ignore)] public DateTime? FirstTimestamp { get; set; } /// /// The time at which the most recent occurrence of this event was recorded. /// [YamlMember(Alias = "lastTimestamp")] [JsonProperty("lastTimestamp", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTimestamp { get; set; } /// /// Data about the Event series this event represents or nil if it's a singleton Event. /// [YamlMember(Alias = "series")] [JsonProperty("series", NullValueHandling = NullValueHandling.Ignore)] public EventSeriesV1 Series { get; set; } /// /// The number of times this event has occurred. /// [YamlMember(Alias = "count")] [JsonProperty("count", NullValueHandling = NullValueHandling.Ignore)] public int? Count { get; set; } /// /// The object that this event is about. /// [YamlMember(Alias = "involvedObject")] [JsonProperty("involvedObject", NullValueHandling = NullValueHandling.Include)] public ObjectReferenceV1 InvolvedObject { get; set; } /// /// Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. /// [YamlMember(Alias = "reportingComponent")] [JsonProperty("reportingComponent", NullValueHandling = NullValueHandling.Ignore)] public string ReportingComponent { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EventV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. /// [KubeObject("Event", "events.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/events.k8s.io/v1beta1/events")] [KubeApi(KubeAction.WatchList, "apis/events.k8s.io/v1beta1/watch/events")] [KubeApi(KubeAction.List, "apis/events.k8s.io/v1beta1/namespaces/{namespace}/events")] [KubeApi(KubeAction.Create, "apis/events.k8s.io/v1beta1/namespaces/{namespace}/events")] [KubeApi(KubeAction.Get, "apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.Patch, "apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.Delete, "apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.Update, "apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}")] [KubeApi(KubeAction.WatchList, "apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events")] [KubeApi(KubeAction.DeleteCollection, "apis/events.k8s.io/v1beta1/namespaces/{namespace}/events")] [KubeApi(KubeAction.Watch, "apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}")] public partial class EventV1Beta1 : KubeResourceV1 { /// /// Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object. /// [YamlMember(Alias = "related")] [JsonProperty("related", NullValueHandling = NullValueHandling.Ignore)] public ObjectReferenceV1 Related { get; set; } /// /// Deprecated field assuring backward compatibility with core.v1 Event type /// [YamlMember(Alias = "deprecatedSource")] [JsonProperty("deprecatedSource", NullValueHandling = NullValueHandling.Ignore)] public EventSourceV1 DeprecatedSource { get; set; } /// /// Required. Time when this Event was first observed. /// [YamlMember(Alias = "eventTime")] [JsonProperty("eventTime", NullValueHandling = NullValueHandling.Ignore)] public MicroTimeV1? EventTime { get; set; } /// /// Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB. /// [YamlMember(Alias = "note")] [JsonProperty("note", NullValueHandling = NullValueHandling.Ignore)] public string Note { get; set; } /// /// ID of the controller instance, e.g. `kubelet-xyzf`. /// [YamlMember(Alias = "reportingInstance")] [JsonProperty("reportingInstance", NullValueHandling = NullValueHandling.Ignore)] public string ReportingInstance { get; set; } /// /// Type of this event (Normal, Warning), new types could be added in the future. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// The object this Event is about. In most cases it's an Object reporting controller implements. E.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object. /// [YamlMember(Alias = "regarding")] [JsonProperty("regarding", NullValueHandling = NullValueHandling.Ignore)] public ObjectReferenceV1 Regarding { get; set; } /// /// What action was taken/failed regarding to the regarding object. /// [YamlMember(Alias = "action")] [JsonProperty("action", NullValueHandling = NullValueHandling.Ignore)] public string Action { get; set; } /// /// Why the action was taken. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Deprecated field assuring backward compatibility with core.v1 Event type /// [YamlMember(Alias = "deprecatedFirstTimestamp")] [JsonProperty("deprecatedFirstTimestamp", NullValueHandling = NullValueHandling.Ignore)] public DateTime? DeprecatedFirstTimestamp { get; set; } /// /// Deprecated field assuring backward compatibility with core.v1 Event type /// [YamlMember(Alias = "deprecatedLastTimestamp")] [JsonProperty("deprecatedLastTimestamp", NullValueHandling = NullValueHandling.Ignore)] public DateTime? DeprecatedLastTimestamp { get; set; } /// /// Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. /// [YamlMember(Alias = "reportingController")] [JsonProperty("reportingController", NullValueHandling = NullValueHandling.Ignore)] public string ReportingController { get; set; } /// /// Data about the Event series this event represents or nil if it's a singleton Event. /// [YamlMember(Alias = "series")] [JsonProperty("series", NullValueHandling = NullValueHandling.Ignore)] public EventSeriesV1Beta1 Series { get; set; } /// /// Deprecated field assuring backward compatibility with core.v1 Event type /// [YamlMember(Alias = "deprecatedCount")] [JsonProperty("deprecatedCount", NullValueHandling = NullValueHandling.Ignore)] public int? DeprecatedCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EvictionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions. /// [KubeObject("Eviction", "policy/v1")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/pods/{name}/eviction")] public partial class EvictionV1 : KubeResourceV1 { /// /// DeleteOptions may be provided /// [YamlMember(Alias = "deleteOptions")] [JsonProperty("deleteOptions", NullValueHandling = NullValueHandling.Ignore)] public DeleteOptionsV1 DeleteOptions { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/EvictionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions. /// [KubeObject("Eviction", "policy/v1beta1")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/pods/{name}/eviction")] public partial class EvictionV1Beta1 : KubeResourceV1 { /// /// DeleteOptions may be provided /// [YamlMember(Alias = "deleteOptions")] [JsonProperty("deleteOptions", NullValueHandling = NullValueHandling.Ignore)] public DeleteOptionsV1 DeleteOptions { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExecActionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExecAction describes a "run in container" action. /// public partial class ExecActionV1 { /// /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. /// [YamlMember(Alias = "command")] [JsonProperty("command", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Command { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCommand() => Command.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ExemptPriorityLevelConfigurationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`. /// public partial class ExemptPriorityLevelConfigurationV1 { /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values: /// /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) /// /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero. /// [YamlMember(Alias = "nominalConcurrencyShares")] [JsonProperty("nominalConcurrencyShares", NullValueHandling = NullValueHandling.Ignore)] public int? NominalConcurrencyShares { get; set; } /// /// `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. /// /// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 ) /// [YamlMember(Alias = "lendablePercent")] [JsonProperty("lendablePercent", NullValueHandling = NullValueHandling.Ignore)] public int? LendablePercent { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExemptPriorityLevelConfigurationV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`. /// public partial class ExemptPriorityLevelConfigurationV1Beta3 { /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values: /// /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) /// /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero. /// [YamlMember(Alias = "nominalConcurrencyShares")] [JsonProperty("nominalConcurrencyShares", NullValueHandling = NullValueHandling.Ignore)] public int? NominalConcurrencyShares { get; set; } /// /// `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. /// /// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 ) /// [YamlMember(Alias = "lendablePercent")] [JsonProperty("lendablePercent", NullValueHandling = NullValueHandling.Ignore)] public int? LendablePercent { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExpressionWarningV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExpressionWarning is a warning information that targets a specific expression. /// public partial class ExpressionWarningV1 { /// /// 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" /// [YamlMember(Alias = "fieldRef")] [JsonProperty("fieldRef", NullValueHandling = NullValueHandling.Include)] public string FieldRef { get; set; } /// /// 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. /// [YamlMember(Alias = "warning")] [JsonProperty("warning", NullValueHandling = NullValueHandling.Include)] public string Warning { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExpressionWarningV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExpressionWarning is a warning information that targets a specific expression. /// public partial class ExpressionWarningV1Alpha1 { /// /// 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" /// [YamlMember(Alias = "fieldRef")] [JsonProperty("fieldRef", NullValueHandling = NullValueHandling.Include)] public string FieldRef { get; set; } /// /// 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. /// [YamlMember(Alias = "warning")] [JsonProperty("warning", NullValueHandling = NullValueHandling.Include)] public string Warning { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExpressionWarningV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExpressionWarning is a warning information that targets a specific expression. /// public partial class ExpressionWarningV1Beta1 { /// /// 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" /// [YamlMember(Alias = "fieldRef")] [JsonProperty("fieldRef", NullValueHandling = NullValueHandling.Include)] public string FieldRef { get; set; } /// /// 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. /// [YamlMember(Alias = "warning")] [JsonProperty("warning", NullValueHandling = NullValueHandling.Include)] public string Warning { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExternalDocumentationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExternalDocumentation allows referencing an external resource for extended documentation. /// public partial class ExternalDocumentationV1 { /// /// Description not provided. /// [YamlMember(Alias = "url")] [JsonProperty("url", NullValueHandling = NullValueHandling.Ignore)] public string Url { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExternalDocumentationV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExternalDocumentation allows referencing an external resource for extended documentation. /// public partial class ExternalDocumentationV1Beta1 { /// /// Description not provided. /// [YamlMember(Alias = "url")] [JsonProperty("url", NullValueHandling = NullValueHandling.Ignore)] public string Url { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExternalMetricSourceV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). /// public partial class ExternalMetricSourceV2 { /// /// metric identifies the target metric by name and selector /// [YamlMember(Alias = "metric")] [JsonProperty("metric", NullValueHandling = NullValueHandling.Include)] public MetricIdentifierV2 Metric { get; set; } /// /// target specifies the target value for the given metric /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public MetricTargetV2 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExternalMetricSourceV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one "target" type should be set. /// public partial class ExternalMetricSourceV2Beta1 { /// /// metricName is the name of the metric in question. /// [YamlMember(Alias = "metricName")] [JsonProperty("metricName", NullValueHandling = NullValueHandling.Include)] public string MetricName { get; set; } /// /// targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue. /// [YamlMember(Alias = "targetAverageValue")] [JsonProperty("targetAverageValue", NullValueHandling = NullValueHandling.Ignore)] public string TargetAverageValue { get; set; } /// /// targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue. /// [YamlMember(Alias = "targetValue")] [JsonProperty("targetValue", NullValueHandling = NullValueHandling.Ignore)] public string TargetValue { get; set; } /// /// metricSelector is used to identify a specific time series within a given metric. /// [YamlMember(Alias = "metricSelector")] [JsonProperty("metricSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 MetricSelector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExternalMetricStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object. /// public partial class ExternalMetricStatusV2 { /// /// metric identifies the target metric by name and selector /// [YamlMember(Alias = "metric")] [JsonProperty("metric", NullValueHandling = NullValueHandling.Include)] public MetricIdentifierV2 Metric { get; set; } /// /// current contains the current value for the given metric /// [YamlMember(Alias = "current")] [JsonProperty("current", NullValueHandling = NullValueHandling.Include)] public MetricValueStatusV2 Current { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ExternalMetricStatusV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object. /// public partial class ExternalMetricStatusV2Beta1 { /// /// currentAverageValue is the current value of metric averaged over autoscaled pods. /// [YamlMember(Alias = "currentAverageValue")] [JsonProperty("currentAverageValue", NullValueHandling = NullValueHandling.Ignore)] public string CurrentAverageValue { get; set; } /// /// currentValue is the current value of the metric (as a quantity) /// [YamlMember(Alias = "currentValue")] [JsonProperty("currentValue", NullValueHandling = NullValueHandling.Include)] public string CurrentValue { get; set; } /// /// metricName is the name of a metric used for autoscaling in metric system. /// [YamlMember(Alias = "metricName")] [JsonProperty("metricName", NullValueHandling = NullValueHandling.Include)] public string MetricName { get; set; } /// /// metricSelector is used to identify a specific time series within a given metric. /// [YamlMember(Alias = "metricSelector")] [JsonProperty("metricSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 MetricSelector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FCVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling. /// public partial class FCVolumeSourceV1 { /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// lun is Optional: FC target lun number /// [YamlMember(Alias = "lun")] [JsonProperty("lun", NullValueHandling = NullValueHandling.Ignore)] public int? Lun { get; set; } /// /// targetWWNs is Optional: FC target worldwide names (WWNs) /// [YamlMember(Alias = "targetWWNs")] [JsonProperty("targetWWNs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List TargetWWNs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTargetWWNs() => TargetWWNs.Count > 0; /// /// wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. /// [YamlMember(Alias = "wwids")] [JsonProperty("wwids", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Wwids { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeWwids() => Wwids.Count > 0; /// /// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FSGroupStrategyOptionsV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead. /// public partial class FSGroupStrategyOptionsV1Beta1 { /// /// rule is the strategy that will dictate what FSGroup is used in the SecurityContext. /// [YamlMember(Alias = "rule")] [JsonProperty("rule", NullValueHandling = NullValueHandling.Ignore)] public string Rule { get; set; } /// /// ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs. /// [YamlMember(Alias = "ranges")] [JsonProperty("ranges", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ranges { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRanges() => Ranges.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/FieldSelectorAttributesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FieldSelectorAttributes indicates a field limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid. /// public partial class FieldSelectorAttributesV1 { /// /// rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present. /// [YamlMember(Alias = "rawSelector")] [JsonProperty("rawSelector", NullValueHandling = NullValueHandling.Ignore)] public string RawSelector { get; set; } /// /// requirements is the parsed interpretation of a field selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood. /// [YamlMember(Alias = "requirements")] [JsonProperty("requirements", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Requirements { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequirements() => Requirements.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/FieldSelectorRequirementV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values. /// public partial class FieldSelectorRequirementV1 { /// /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future. /// [YamlMember(Alias = "operator")] [JsonProperty("operator", NullValueHandling = NullValueHandling.Include)] public string Operator { get; set; } /// /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. /// [YamlMember(Alias = "values")] [JsonProperty("values", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Values { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValues() => Values.Count > 0; /// /// key is the field selector key that the requirement applies to. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FieldsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. /// /// Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. /// /// The exact format is defined in sigs.k8s.io/structured-merge-diff /// public partial class FieldsV1 { } } ================================================ FILE: src/KubeClient/Models/generated/FlexPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin. /// public partial class FlexPersistentVolumeSourceV1 { /// /// fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 SecretRef { get; set; } /// /// driver is the name of the driver to use for this volume. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } /// /// options is Optional: this field holds extra command options if any. /// [YamlMember(Alias = "options")] [JsonProperty("options", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Options { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOptions() => Options.Count > 0; /// /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlexVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. /// public partial class FlexVolumeSourceV1 { /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public LocalObjectReferenceV1 SecretRef { get; set; } /// /// driver is the name of the driver to use for this volume. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } /// /// options is Optional: this field holds extra command options if any. /// [YamlMember(Alias = "options")] [JsonProperty("options", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Options { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOptions() => Options.Count > 0; /// /// readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlockerVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling. /// public partial class FlockerVolumeSourceV1 { /// /// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset /// [YamlMember(Alias = "datasetUUID")] [JsonProperty("datasetUUID", NullValueHandling = NullValueHandling.Ignore)] public string DatasetUUID { get; set; } /// /// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated /// [YamlMember(Alias = "datasetName")] [JsonProperty("datasetName", NullValueHandling = NullValueHandling.Ignore)] public string DatasetName { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlowDistinguisherMethodV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowDistinguisherMethod specifies the method of a flow distinguisher. /// public partial class FlowDistinguisherMethodV1 { /// /// `type` is the type of flow distinguisher method The supported types are "ByUser" and "ByNamespace". Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlowDistinguisherMethodV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowDistinguisherMethod specifies the method of a flow distinguisher. /// public partial class FlowDistinguisherMethodV1Beta3 { /// /// `type` is the type of flow distinguisher method The supported types are "ByUser" and "ByNamespace". Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaCondition describes conditions for a FlowSchema. /// public partial class FlowSchemaConditionV1 { /// /// `lastTransitionTime` is the last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// `message` is a human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// `type` is the type of the condition. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// `status` is the status of the condition. Can be True, False, Unknown. Required. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaConditionV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaCondition describes conditions for a FlowSchema. /// public partial class FlowSchemaConditionV1Beta3 { /// /// `lastTransitionTime` is the last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// `message` is a human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// `type` is the type of the condition. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// `status` is the status of the condition. Can be True, False, Unknown. Required. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaList is a list of FlowSchema objects. /// [KubeListItem("FlowSchema", "flowcontrol.apiserver.k8s.io/v1")] [KubeObject("FlowSchemaList", "flowcontrol.apiserver.k8s.io/v1")] public partial class FlowSchemaListV1 : KubeResourceListV1 { /// /// `items` is a list of FlowSchemas. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaListV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaList is a list of FlowSchema objects. /// [KubeListItem("FlowSchema", "flowcontrol.apiserver.k8s.io/v1beta3")] [KubeObject("FlowSchemaList", "flowcontrol.apiserver.k8s.io/v1beta3")] public partial class FlowSchemaListV1Beta3 : KubeResourceListV1 { /// /// `items` is a list of FlowSchemas. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaSpec describes how the FlowSchema's specification looks like. /// public partial class FlowSchemaSpecV1 { /// /// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string. /// [YamlMember(Alias = "distinguisherMethod")] [JsonProperty("distinguisherMethod", NullValueHandling = NullValueHandling.Ignore)] public FlowDistinguisherMethodV1 DistinguisherMethod { get; set; } /// /// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default. /// [YamlMember(Alias = "matchingPrecedence")] [JsonProperty("matchingPrecedence", NullValueHandling = NullValueHandling.Ignore)] public int? MatchingPrecedence { get; set; } /// /// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required. /// [YamlMember(Alias = "priorityLevelConfiguration")] [JsonProperty("priorityLevelConfiguration", NullValueHandling = NullValueHandling.Include)] public PriorityLevelConfigurationReferenceV1 PriorityLevelConfiguration { get; set; } /// /// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaSpecV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaSpec describes how the FlowSchema's specification looks like. /// public partial class FlowSchemaSpecV1Beta3 { /// /// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string. /// [YamlMember(Alias = "distinguisherMethod")] [JsonProperty("distinguisherMethod", NullValueHandling = NullValueHandling.Ignore)] public FlowDistinguisherMethodV1Beta3 DistinguisherMethod { get; set; } /// /// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default. /// [YamlMember(Alias = "matchingPrecedence")] [JsonProperty("matchingPrecedence", NullValueHandling = NullValueHandling.Ignore)] public int? MatchingPrecedence { get; set; } /// /// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required. /// [YamlMember(Alias = "priorityLevelConfiguration")] [JsonProperty("priorityLevelConfiguration", NullValueHandling = NullValueHandling.Include)] public PriorityLevelConfigurationReferenceV1Beta3 PriorityLevelConfiguration { get; set; } /// /// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaStatus represents the current state of a FlowSchema. /// public partial class FlowSchemaStatusV1 { /// /// `conditions` is a list of the current states of FlowSchema. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaStatusV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchemaStatus represents the current state of a FlowSchema. /// public partial class FlowSchemaStatusV1Beta3 { /// /// `conditions` is a list of the current states of FlowSchema. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a "flow distinguisher". /// [KubeObject("FlowSchema", "flowcontrol.apiserver.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas")] [KubeApi(KubeAction.Create, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}")] [KubeApi(KubeAction.Delete, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}")] [KubeApi(KubeAction.WatchList, "apis/flowcontrol.apiserver.k8s.io/v1/watch/flowschemas")] [KubeApi(KubeAction.DeleteCollection, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status")] [KubeApi(KubeAction.Watch, "apis/flowcontrol.apiserver.k8s.io/v1/watch/flowschemas/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status")] public partial class FlowSchemaV1 : KubeResourceV1 { /// /// `spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public FlowSchemaSpecV1 Spec { get; set; } /// /// `status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public FlowSchemaStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/FlowSchemaV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a "flow distinguisher". /// [KubeObject("FlowSchema", "flowcontrol.apiserver.k8s.io/v1beta3")] [KubeApi(KubeAction.List, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas")] [KubeApi(KubeAction.Create, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}")] [KubeApi(KubeAction.Delete, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}")] [KubeApi(KubeAction.WatchList, "apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/flowschemas")] [KubeApi(KubeAction.DeleteCollection, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}/status")] [KubeApi(KubeAction.Watch, "apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/flowschemas/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}/status")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}/status")] public partial class FlowSchemaV1Beta3 : KubeResourceV1 { /// /// `spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public FlowSchemaSpecV1Beta3 Spec { get; set; } /// /// `status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public FlowSchemaStatusV1Beta3 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ForZoneV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ForZone provides information about which zones should consume this endpoint. /// public partial class ForZoneV1 { /// /// name represents the name of the zone. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GCEPersistentDiskVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Persistent Disk resource in Google Compute Engine. /// /// A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling. /// public partial class GCEPersistentDiskVolumeSourceV1 { /// /// fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [YamlMember(Alias = "pdName")] [JsonProperty("pdName", NullValueHandling = NullValueHandling.Include)] public string PdName { get; set; } /// /// partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [YamlMember(Alias = "partition")] [JsonProperty("partition", NullValueHandling = NullValueHandling.Ignore)] public int? Partition { get; set; } /// /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GRPCActionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class GRPCActionV1 { /// /// Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). /// /// If this is not specified, the default behavior is defined by gRPC. /// [YamlMember(Alias = "service")] [JsonProperty("service", NullValueHandling = NullValueHandling.Ignore)] public string Service { get; set; } /// /// Port number of the gRPC service. Number must be in the range 1 to 65535. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Include)] public int Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GitRepoVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling. /// /// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. /// public partial class GitRepoVolumeSourceV1 { /// /// revision is the commit hash for the specified revision. /// [YamlMember(Alias = "revision")] [JsonProperty("revision", NullValueHandling = NullValueHandling.Ignore)] public string Revision { get; set; } /// /// directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. /// [YamlMember(Alias = "directory")] [JsonProperty("directory", NullValueHandling = NullValueHandling.Ignore)] public string Directory { get; set; } /// /// repository is the URL /// [YamlMember(Alias = "repository")] [JsonProperty("repository", NullValueHandling = NullValueHandling.Include)] public string Repository { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GlusterfsPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. /// public partial class GlusterfsPersistentVolumeSourceV1 { /// /// endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod /// [YamlMember(Alias = "endpointsNamespace")] [JsonProperty("endpointsNamespace", NullValueHandling = NullValueHandling.Ignore)] public string EndpointsNamespace { get; set; } /// /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } /// /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod /// [YamlMember(Alias = "endpoints")] [JsonProperty("endpoints", NullValueHandling = NullValueHandling.Include)] public string Endpoints { get; set; } /// /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GlusterfsVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. /// public partial class GlusterfsVolumeSourceV1 { /// /// path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } /// /// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod /// [YamlMember(Alias = "endpoints")] [JsonProperty("endpoints", NullValueHandling = NullValueHandling.Include)] public string Endpoints { get; set; } /// /// readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GroupSubjectV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// GroupSubject holds detailed information for group-kind subject. /// public partial class GroupSubjectV1 { /// /// name is the user group that matches, or "*" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GroupSubjectV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// GroupSubject holds detailed information for group-kind subject. /// public partial class GroupSubjectV1Beta3 { /// /// name is the user group that matches, or "*" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GroupVersionForDiscoveryV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// GroupVersion contains the "group/version" and "version" string of a version. It is made a struct to keep extensibility. /// public partial class GroupVersionForDiscoveryV1 { /// /// groupVersion specifies the API group and version in the form "group/version" /// [YamlMember(Alias = "groupVersion")] [JsonProperty("groupVersion", NullValueHandling = NullValueHandling.Include)] public string GroupVersion { get; set; } /// /// version specifies the version in the form of "version". This is to save the clients the trouble of splitting the GroupVersion. /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Include)] public string Version { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/GroupVersionResourceV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// The names of the group, the version, and the resource. /// public partial class GroupVersionResourceV1Alpha1 { /// /// The name of the resource. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public string Resource { get; set; } /// /// The name of the version. /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// The name of the group. /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HPAScalingPolicyV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HPAScalingPolicy is a single policy which must hold true for a specified past interval. /// public partial class HPAScalingPolicyV2 { /// /// type is used to specify the scaling policy. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// value contains the amount of change which is permitted by the policy. It must be greater than zero /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Include)] public int Value { get; set; } /// /// periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min). /// [YamlMember(Alias = "periodSeconds")] [JsonProperty("periodSeconds", NullValueHandling = NullValueHandling.Include)] public int PeriodSeconds { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HPAScalingRulesV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. /// public partial class HPAScalingRulesV2 { /// /// policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid /// [YamlMember(Alias = "policies")] [JsonProperty("policies", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Policies { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePolicies() => Policies.Count > 0; /// /// stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long). /// [YamlMember(Alias = "stabilizationWindowSeconds")] [JsonProperty("stabilizationWindowSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? StabilizationWindowSeconds { get; set; } /// /// selectPolicy is used to specify which policy should be used. If not set, the default value Max is used. /// [YamlMember(Alias = "selectPolicy")] [JsonProperty("selectPolicy", NullValueHandling = NullValueHandling.Ignore)] public string SelectPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HTTPGetActionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HTTPGetAction describes an action based on HTTP Get requests. /// public partial class HTTPGetActionV1 { /// /// Scheme to use for connecting to the host. Defaults to HTTP. /// [YamlMember(Alias = "scheme")] [JsonProperty("scheme", NullValueHandling = NullValueHandling.Ignore)] public string Scheme { get; set; } /// /// Path to access on the HTTP server. /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] public string Path { get; set; } /// /// Custom headers to set in the request. HTTP allows repeated headers. /// [YamlMember(Alias = "httpHeaders")] [JsonProperty("httpHeaders", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List HttpHeaders { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHttpHeaders() => HttpHeaders.Count > 0; /// /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. /// [YamlMember(Alias = "host")] [JsonProperty("host", NullValueHandling = NullValueHandling.Ignore)] public string Host { get; set; } /// /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Include)] public Int32OrStringV1 Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HTTPHeaderV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HTTPHeader describes a custom header to be used in HTTP probes /// public partial class HTTPHeaderV1 { /// /// The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// The header field value /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Include)] public string Value { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HTTPIngressPathV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend. /// public partial class HTTPIngressPathV1 { /// /// backend defines the referenced service endpoint to which the traffic will be forwarded to. /// [YamlMember(Alias = "backend")] [JsonProperty("backend", NullValueHandling = NullValueHandling.Include)] public IngressBackendV1 Backend { get; set; } /// /// pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is /// done on a path element by element basis. A path element refers is the /// list of labels in the path split by the '/' separator. A request is a /// match for path p if every p is an element-wise prefix of p of the /// request path. Note that if the last element of the path is a substring /// of the last element in request path, it is not a match (e.g. /foo/bar /// matches /foo/bar/baz, but does not match /foo/barbaz). /// * ImplementationSpecific: Interpretation of the Path matching is up to /// the IngressClass. Implementations can treat this as a separate PathType /// or treat it identically to Prefix or Exact path types. /// Implementations are required to support all path types. /// [YamlMember(Alias = "pathType")] [JsonProperty("pathType", NullValueHandling = NullValueHandling.Include)] public string PathType { get; set; } /// /// path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value "Exact" or "Prefix". /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] public string Path { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HTTPIngressPathV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend. /// public partial class HTTPIngressPathV1Beta1 { /// /// Backend defines the referenced service endpoint to which the traffic will be forwarded to. /// [YamlMember(Alias = "backend")] [JsonProperty("backend", NullValueHandling = NullValueHandling.Include)] public IngressBackendV1Beta1 Backend { get; set; } /// /// Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a '/'. If unspecified, the path defaults to a catch all sending traffic to the backend. /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] public string Path { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HTTPIngressRuleValueV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'. /// public partial class HTTPIngressRuleValueV1 { /// /// paths is a collection of paths that map requests to backends. /// [YamlMember(Alias = "paths")] [JsonProperty("paths", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Paths { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/HTTPIngressRuleValueV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'. /// public partial class HTTPIngressRuleValueV1Beta1 { /// /// A collection of paths that map requests to backends. /// [YamlMember(Alias = "paths")] [JsonProperty("paths", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Paths { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/HandlerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Handler defines a specific action that should be taken /// public partial class HandlerV1 { /// /// One and only one of the following should be specified. Exec specifies the action to take. /// [YamlMember(Alias = "exec")] [JsonProperty("exec", NullValueHandling = NullValueHandling.Ignore)] public ExecActionV1 Exec { get; set; } /// /// HTTPGet specifies the http request to perform. /// [YamlMember(Alias = "httpGet")] [JsonProperty("httpGet", NullValueHandling = NullValueHandling.Ignore)] public HTTPGetActionV1 HttpGet { get; set; } /// /// TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported /// [YamlMember(Alias = "tcpSocket")] [JsonProperty("tcpSocket", NullValueHandling = NullValueHandling.Ignore)] public TCPSocketActionV1 TcpSocket { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerBehaviorV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). /// public partial class HorizontalPodAutoscalerBehaviorV2 { /// /// scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used). /// [YamlMember(Alias = "scaleDown")] [JsonProperty("scaleDown", NullValueHandling = NullValueHandling.Ignore)] public HPAScalingRulesV2 ScaleDown { get; set; } /// /// scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of: /// * increase no more than 4 pods per 60 seconds /// * double the number of pods per 60 seconds /// No stabilization is used. /// [YamlMember(Alias = "scaleUp")] [JsonProperty("scaleUp", NullValueHandling = NullValueHandling.Ignore)] public HPAScalingRulesV2 ScaleUp { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerConditionV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point. /// public partial class HorizontalPodAutoscalerConditionV2 { /// /// lastTransitionTime is the last time the condition transitioned from one status to another /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// message is a human-readable explanation containing details about the transition /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// type describes the current condition /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// reason is the reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// status is the status of the condition (True, False, Unknown) /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerConditionV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point. /// public partial class HorizontalPodAutoscalerConditionV2Beta1 { /// /// lastTransitionTime is the last time the condition transitioned from one status to another /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// message is a human-readable explanation containing details about the transition /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// type describes the current condition /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// reason is the reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// status is the status of the condition (True, False, Unknown) /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// list of horizontal pod autoscaler objects. /// [KubeListItem("HorizontalPodAutoscaler", "autoscaling/v1")] [KubeObject("HorizontalPodAutoscalerList", "autoscaling/v1")] public partial class HorizontalPodAutoscalerListV1 : KubeResourceListV1 { /// /// items is the list of horizontal pod autoscaler objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerListV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects. /// [KubeListItem("HorizontalPodAutoscaler", "autoscaling/v2")] [KubeObject("HorizontalPodAutoscalerList", "autoscaling/v2")] public partial class HorizontalPodAutoscalerListV2 : KubeResourceListV1 { /// /// items is the list of horizontal pod autoscaler objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerListV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects. /// [KubeListItem("HorizontalPodAutoscaler", "autoscaling/v2beta1")] [KubeObject("HorizontalPodAutoscalerList", "autoscaling/v2beta1")] public partial class HorizontalPodAutoscalerListV2Beta1 : KubeResourceListV1 { /// /// items is the list of horizontal pod autoscaler objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// specification of a horizontal pod autoscaler. /// public partial class HorizontalPodAutoscalerSpecV1 { /// /// targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used. /// [YamlMember(Alias = "targetCPUUtilizationPercentage")] [JsonProperty("targetCPUUtilizationPercentage", NullValueHandling = NullValueHandling.Ignore)] public int? TargetCPUUtilizationPercentage { get; set; } /// /// reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource. /// [YamlMember(Alias = "scaleTargetRef")] [JsonProperty("scaleTargetRef", NullValueHandling = NullValueHandling.Include)] public CrossVersionObjectReferenceV1 ScaleTargetRef { get; set; } /// /// maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. /// [YamlMember(Alias = "maxReplicas")] [JsonProperty("maxReplicas", NullValueHandling = NullValueHandling.Include)] public int MaxReplicas { get; set; } /// /// minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available. /// [YamlMember(Alias = "minReplicas")] [JsonProperty("minReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? MinReplicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerSpecV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler. /// public partial class HorizontalPodAutoscalerSpecV2 { /// /// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count. /// [YamlMember(Alias = "scaleTargetRef")] [JsonProperty("scaleTargetRef", NullValueHandling = NullValueHandling.Include)] public CrossVersionObjectReferenceV2 ScaleTargetRef { get; set; } /// /// behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used. /// [YamlMember(Alias = "behavior")] [JsonProperty("behavior", NullValueHandling = NullValueHandling.Ignore)] public HorizontalPodAutoscalerBehaviorV2 Behavior { get; set; } /// /// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas. /// [YamlMember(Alias = "maxReplicas")] [JsonProperty("maxReplicas", NullValueHandling = NullValueHandling.Include)] public int MaxReplicas { get; set; } /// /// metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization. /// [YamlMember(Alias = "metrics")] [JsonProperty("metrics", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Metrics { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMetrics() => Metrics.Count > 0; /// /// minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available. /// [YamlMember(Alias = "minReplicas")] [JsonProperty("minReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? MinReplicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerSpecV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler. /// public partial class HorizontalPodAutoscalerSpecV2Beta1 { /// /// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count. /// [YamlMember(Alias = "scaleTargetRef")] [JsonProperty("scaleTargetRef", NullValueHandling = NullValueHandling.Include)] public CrossVersionObjectReferenceV2Beta1 ScaleTargetRef { get; set; } /// /// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas. /// [YamlMember(Alias = "maxReplicas")] [JsonProperty("maxReplicas", NullValueHandling = NullValueHandling.Include)] public int MaxReplicas { get; set; } /// /// metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. /// [YamlMember(Alias = "metrics")] [JsonProperty("metrics", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Metrics { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMetrics() => Metrics.Count > 0; /// /// minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. /// [YamlMember(Alias = "minReplicas")] [JsonProperty("minReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? MinReplicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// current status of a horizontal pod autoscaler /// public partial class HorizontalPodAutoscalerStatusV1 { /// /// currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU. /// [YamlMember(Alias = "currentCPUUtilizationPercentage")] [JsonProperty("currentCPUUtilizationPercentage", NullValueHandling = NullValueHandling.Ignore)] public int? CurrentCPUUtilizationPercentage { get; set; } /// /// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed. /// [YamlMember(Alias = "lastScaleTime")] [JsonProperty("lastScaleTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastScaleTime { get; set; } /// /// observedGeneration is the most recent generation observed by this autoscaler. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// currentReplicas is the current number of replicas of pods managed by this autoscaler. /// [YamlMember(Alias = "currentReplicas")] [JsonProperty("currentReplicas", NullValueHandling = NullValueHandling.Include)] public int CurrentReplicas { get; set; } /// /// desiredReplicas is the desired number of replicas of pods managed by this autoscaler. /// [YamlMember(Alias = "desiredReplicas")] [JsonProperty("desiredReplicas", NullValueHandling = NullValueHandling.Include)] public int DesiredReplicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler. /// public partial class HorizontalPodAutoscalerStatusV2 { /// /// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed. /// [YamlMember(Alias = "lastScaleTime")] [JsonProperty("lastScaleTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastScaleTime { get; set; } /// /// observedGeneration is the most recent generation observed by this autoscaler. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// currentMetrics is the last read state of the metrics used by this autoscaler. /// [YamlMember(Alias = "currentMetrics")] [JsonProperty("currentMetrics", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List CurrentMetrics { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCurrentMetrics() => CurrentMetrics.Count > 0; /// /// currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler. /// [YamlMember(Alias = "currentReplicas")] [JsonProperty("currentReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? CurrentReplicas { get; set; } /// /// desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler. /// [YamlMember(Alias = "desiredReplicas")] [JsonProperty("desiredReplicas", NullValueHandling = NullValueHandling.Include)] public int DesiredReplicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerStatusV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler. /// public partial class HorizontalPodAutoscalerStatusV2Beta1 { /// /// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed. /// [YamlMember(Alias = "lastScaleTime")] [JsonProperty("lastScaleTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastScaleTime { get; set; } /// /// observedGeneration is the most recent generation observed by this autoscaler. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met. /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// currentMetrics is the last read state of the metrics used by this autoscaler. /// [YamlMember(Alias = "currentMetrics")] [JsonProperty("currentMetrics", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List CurrentMetrics { get; } = new List(); /// /// currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler. /// [YamlMember(Alias = "currentReplicas")] [JsonProperty("currentReplicas", NullValueHandling = NullValueHandling.Include)] public int CurrentReplicas { get; set; } /// /// desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler. /// [YamlMember(Alias = "desiredReplicas")] [JsonProperty("desiredReplicas", NullValueHandling = NullValueHandling.Include)] public int DesiredReplicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// configuration of a horizontal pod autoscaler. /// [KubeObject("HorizontalPodAutoscaler", "autoscaling/v1")] [KubeApi(KubeAction.List, "apis/autoscaling/v1/horizontalpodautoscalers")] [KubeApi(KubeAction.WatchList, "apis/autoscaling/v1/watch/horizontalpodautoscalers")] [KubeApi(KubeAction.List, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Create, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Get, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Patch, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Delete, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Update, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.WatchList, "apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.DeleteCollection, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Get, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] [KubeApi(KubeAction.Watch, "apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Patch, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] [KubeApi(KubeAction.Update, "apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] public partial class HorizontalPodAutoscalerV1 : KubeResourceV1 { /// /// spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public HorizontalPodAutoscalerSpecV1 Spec { get; set; } /// /// status is the current information about the autoscaler. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public HorizontalPodAutoscalerStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified. /// [KubeObject("HorizontalPodAutoscaler", "autoscaling/v2")] [KubeApi(KubeAction.List, "apis/autoscaling/v2/horizontalpodautoscalers")] [KubeApi(KubeAction.WatchList, "apis/autoscaling/v2/watch/horizontalpodautoscalers")] [KubeApi(KubeAction.List, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Create, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Get, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Patch, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Delete, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Update, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.WatchList, "apis/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.DeleteCollection, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Get, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] [KubeApi(KubeAction.Watch, "apis/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Patch, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] [KubeApi(KubeAction.Update, "apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] public partial class HorizontalPodAutoscalerV2 : KubeResourceV1 { /// /// spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public HorizontalPodAutoscalerSpecV2 Spec { get; set; } /// /// status is the current information about the autoscaler. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public HorizontalPodAutoscalerStatusV2 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified. /// [KubeObject("HorizontalPodAutoscaler", "autoscaling/v2beta1")] [KubeApi(KubeAction.List, "apis/autoscaling/v2beta1/horizontalpodautoscalers")] [KubeApi(KubeAction.WatchList, "apis/autoscaling/v2beta1/watch/horizontalpodautoscalers")] [KubeApi(KubeAction.List, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Create, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Get, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Patch, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Delete, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Update, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.WatchList, "apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.DeleteCollection, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers")] [KubeApi(KubeAction.Get, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] [KubeApi(KubeAction.Watch, "apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}")] [KubeApi(KubeAction.Patch, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] [KubeApi(KubeAction.Update, "apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status")] public partial class HorizontalPodAutoscalerV2Beta1 : KubeResourceV1 { /// /// spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public HorizontalPodAutoscalerSpecV2Beta1 Spec { get; set; } /// /// status is the current information about the autoscaler. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public HorizontalPodAutoscalerStatusV2Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HostAliasV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file. /// public partial class HostAliasV1 { /// /// IP address of the host file entry. /// [YamlMember(Alias = "ip")] [JsonProperty("ip", NullValueHandling = NullValueHandling.Include)] public string Ip { get; set; } /// /// Hostnames for the above IP address. /// [YamlMember(Alias = "hostnames")] [JsonProperty("hostnames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Hostnames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHostnames() => Hostnames.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/HostIPV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HostIP represents a single IP address allocated to the host. /// public partial class HostIPV1 { /// /// IP is the IP address assigned to the host /// [YamlMember(Alias = "ip")] [JsonProperty("ip", NullValueHandling = NullValueHandling.Include)] public string Ip { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HostPathVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling. /// public partial class HostPathVolumeSourceV1 { /// /// type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/HostPortRangeV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined. Deprecated: use HostPortRange from policy API Group instead. /// public partial class HostPortRangeV1Beta1 { /// /// min is the start of the range, inclusive. /// [YamlMember(Alias = "min")] [JsonProperty("min", NullValueHandling = NullValueHandling.Include)] public int Min { get; set; } /// /// max is the end of the range, inclusive. /// [YamlMember(Alias = "max")] [JsonProperty("max", NullValueHandling = NullValueHandling.Include)] public int Max { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IDRangeV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead. /// public partial class IDRangeV1Beta1 { /// /// min is the start of the range, inclusive. /// [YamlMember(Alias = "min")] [JsonProperty("min", NullValueHandling = NullValueHandling.Include)] public long Min { get; set; } /// /// max is the end of the range, inclusive. /// [YamlMember(Alias = "max")] [JsonProperty("max", NullValueHandling = NullValueHandling.Include)] public long Max { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IPAddressListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IPAddressList contains a list of IPAddress. /// [KubeListItem("IPAddress", "networking.k8s.io/v1beta1")] [KubeObject("IPAddressList", "networking.k8s.io/v1beta1")] public partial class IPAddressListV1Beta1 : KubeResourceListV1 { /// /// items is the list of IPAddresses. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/IPAddressSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IPAddressSpec describe the attributes in an IP Address. /// public partial class IPAddressSpecV1Beta1 { /// /// ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object. /// [YamlMember(Alias = "parentRef")] [JsonProperty("parentRef", NullValueHandling = NullValueHandling.Include)] public ParentReferenceV1Beta1 ParentRef { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IPAddressV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1 /// [KubeObject("IPAddress", "networking.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/networking.k8s.io/v1beta1/ipaddresses")] [KubeApi(KubeAction.Create, "apis/networking.k8s.io/v1beta1/ipaddresses")] [KubeApi(KubeAction.Get, "apis/networking.k8s.io/v1beta1/ipaddresses/{name}")] [KubeApi(KubeAction.Patch, "apis/networking.k8s.io/v1beta1/ipaddresses/{name}")] [KubeApi(KubeAction.Delete, "apis/networking.k8s.io/v1beta1/ipaddresses/{name}")] [KubeApi(KubeAction.Update, "apis/networking.k8s.io/v1beta1/ipaddresses/{name}")] [KubeApi(KubeAction.WatchList, "apis/networking.k8s.io/v1beta1/watch/ipaddresses")] [KubeApi(KubeAction.DeleteCollection, "apis/networking.k8s.io/v1beta1/ipaddresses")] [KubeApi(KubeAction.Watch, "apis/networking.k8s.io/v1beta1/watch/ipaddresses/{name}")] public partial class IPAddressV1Beta1 : KubeResourceV1 { /// /// spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public IPAddressSpecV1Beta1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IPBlockV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IPBlock describes a particular CIDR (Ex. "192.168.1.0/24","2001:db8::/64") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule. /// public partial class IPBlockV1 { /// /// cidr is a string representing the IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" /// [YamlMember(Alias = "cidr")] [JsonProperty("cidr", NullValueHandling = NullValueHandling.Include)] public string Cidr { get; set; } /// /// except is a slice of CIDRs that should not be included within an IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" Except values will be rejected if they are outside the cidr range /// [YamlMember(Alias = "except")] [JsonProperty("except", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Except { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExcept() => Except.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/IPBlockV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. "192.168.1.1/24") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule. /// public partial class IPBlockV1Beta1 { /// /// CIDR is a string representing the IP Block Valid examples are "192.168.1.1/24" /// [YamlMember(Alias = "cidr")] [JsonProperty("cidr", NullValueHandling = NullValueHandling.Include)] public string Cidr { get; set; } /// /// Except is a slice of CIDRs that should not be included within an IP Block Valid examples are "192.168.1.1/24" Except values will be rejected if they are outside the CIDR range /// [YamlMember(Alias = "except")] [JsonProperty("except", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Except { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExcept() => Except.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ISCSIPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling. /// public partial class ISCSIPersistentVolumeSourceV1 { /// /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection. /// [YamlMember(Alias = "initiatorName")] [JsonProperty("initiatorName", NullValueHandling = NullValueHandling.Ignore)] public string InitiatorName { get; set; } /// /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). /// [YamlMember(Alias = "iscsiInterface")] [JsonProperty("iscsiInterface", NullValueHandling = NullValueHandling.Ignore)] public string IscsiInterface { get; set; } /// /// secretRef is the CHAP Secret for iSCSI target and initiator authentication /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 SecretRef { get; set; } /// /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). /// [YamlMember(Alias = "targetPortal")] [JsonProperty("targetPortal", NullValueHandling = NullValueHandling.Include)] public string TargetPortal { get; set; } /// /// chapAuthSession defines whether support iSCSI Session CHAP authentication /// [YamlMember(Alias = "chapAuthSession")] [JsonProperty("chapAuthSession", NullValueHandling = NullValueHandling.Ignore)] public bool? ChapAuthSession { get; set; } /// /// iqn is Target iSCSI Qualified Name. /// [YamlMember(Alias = "iqn")] [JsonProperty("iqn", NullValueHandling = NullValueHandling.Include)] public string Iqn { get; set; } /// /// lun is iSCSI Target Lun number. /// [YamlMember(Alias = "lun")] [JsonProperty("lun", NullValueHandling = NullValueHandling.Include)] public int Lun { get; set; } /// /// portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). /// [YamlMember(Alias = "portals")] [JsonProperty("portals", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Portals { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePortals() => Portals.Count > 0; /// /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication /// [YamlMember(Alias = "chapAuthDiscovery")] [JsonProperty("chapAuthDiscovery", NullValueHandling = NullValueHandling.Ignore)] public bool? ChapAuthDiscovery { get; set; } /// /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ISCSIVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling. /// public partial class ISCSIVolumeSourceV1 { /// /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection. /// [YamlMember(Alias = "initiatorName")] [JsonProperty("initiatorName", NullValueHandling = NullValueHandling.Ignore)] public string InitiatorName { get; set; } /// /// iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). /// [YamlMember(Alias = "iscsiInterface")] [JsonProperty("iscsiInterface", NullValueHandling = NullValueHandling.Ignore)] public string IscsiInterface { get; set; } /// /// secretRef is the CHAP Secret for iSCSI target and initiator authentication /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public LocalObjectReferenceV1 SecretRef { get; set; } /// /// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). /// [YamlMember(Alias = "targetPortal")] [JsonProperty("targetPortal", NullValueHandling = NullValueHandling.Include)] public string TargetPortal { get; set; } /// /// chapAuthSession defines whether support iSCSI Session CHAP authentication /// [YamlMember(Alias = "chapAuthSession")] [JsonProperty("chapAuthSession", NullValueHandling = NullValueHandling.Ignore)] public bool? ChapAuthSession { get; set; } /// /// iqn is the target iSCSI Qualified Name. /// [YamlMember(Alias = "iqn")] [JsonProperty("iqn", NullValueHandling = NullValueHandling.Include)] public string Iqn { get; set; } /// /// lun represents iSCSI Target Lun number. /// [YamlMember(Alias = "lun")] [JsonProperty("lun", NullValueHandling = NullValueHandling.Include)] public int Lun { get; set; } /// /// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). /// [YamlMember(Alias = "portals")] [JsonProperty("portals", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Portals { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePortals() => Portals.Count > 0; /// /// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication /// [YamlMember(Alias = "chapAuthDiscovery")] [JsonProperty("chapAuthDiscovery", NullValueHandling = NullValueHandling.Ignore)] public bool? ChapAuthDiscovery { get; set; } /// /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ImageVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ImageVolumeSource represents a image volume resource. /// public partial class ImageVolumeSourceV1 { /// /// Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. 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. /// [YamlMember(Alias = "reference")] [JsonProperty("reference", NullValueHandling = NullValueHandling.Ignore)] public string Reference { get; set; } /// /// Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. /// [YamlMember(Alias = "pullPolicy")] [JsonProperty("pullPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PullPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/InfoVersion.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Info contains versioning information. how we'll want to distribute that information. /// public partial class InfoVersion { /// /// Description not provided. /// [YamlMember(Alias = "buildDate")] [JsonProperty("buildDate", NullValueHandling = NullValueHandling.Include)] public string BuildDate { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "gitTreeState")] [JsonProperty("gitTreeState", NullValueHandling = NullValueHandling.Include)] public string GitTreeState { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "platform")] [JsonProperty("platform", NullValueHandling = NullValueHandling.Include)] public string Platform { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "gitVersion")] [JsonProperty("gitVersion", NullValueHandling = NullValueHandling.Include)] public string GitVersion { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "goVersion")] [JsonProperty("goVersion", NullValueHandling = NullValueHandling.Include)] public string GoVersion { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "compiler")] [JsonProperty("compiler", NullValueHandling = NullValueHandling.Include)] public string Compiler { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "major")] [JsonProperty("major", NullValueHandling = NullValueHandling.Include)] public string Major { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minor")] [JsonProperty("minor", NullValueHandling = NullValueHandling.Include)] public string Minor { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "gitCommit")] [JsonProperty("gitCommit", NullValueHandling = NullValueHandling.Include)] public string GitCommit { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressBackendV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressBackend describes all endpoints for a given service and port. /// public partial class IngressBackendV1 { /// /// resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with "Service". /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public TypedLocalObjectReferenceV1 Resource { get; set; } /// /// service references a service as a backend. This is a mutually exclusive setting with "Resource". /// [YamlMember(Alias = "service")] [JsonProperty("service", NullValueHandling = NullValueHandling.Ignore)] public IngressServiceBackendV1 Service { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressBackendV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressBackend describes all endpoints for a given service and port. /// public partial class IngressBackendV1Beta1 { /// /// Specifies the name of the referenced service. /// [YamlMember(Alias = "serviceName")] [JsonProperty("serviceName", NullValueHandling = NullValueHandling.Include)] public string ServiceName { get; set; } /// /// Specifies the port of the referenced service. /// [YamlMember(Alias = "servicePort")] [JsonProperty("servicePort", NullValueHandling = NullValueHandling.Include)] public Int32OrStringV1 ServicePort { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressClassListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressClassList is a collection of IngressClasses. /// [KubeListItem("IngressClass", "networking.k8s.io/v1")] [KubeObject("IngressClassList", "networking.k8s.io/v1")] public partial class IngressClassListV1 : KubeResourceListV1 { /// /// items is the list of IngressClasses. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/IngressClassParametersReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource. /// public partial class IngressClassParametersReferenceV1 { /// /// kind is the type of resource being referenced. /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// name is the name of resource being referenced. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// namespace is the namespace of the resource being referenced. This field is required when scope is set to "Namespace" and must be unset when scope is set to "Cluster". /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// scope represents if this refers to a cluster or namespace scoped resource. This may be set to "Cluster" (default) or "Namespace". /// [YamlMember(Alias = "scope")] [JsonProperty("scope", NullValueHandling = NullValueHandling.Ignore)] public string Scope { get; set; } /// /// apiGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Ignore)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressClassSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressClassSpec provides information about the class of an Ingress. /// public partial class IngressClassSpecV1 { /// /// controller refers to the name of the controller that should handle this class. This allows for different "flavors" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. "acme.io/ingress-controller". This field is immutable. /// [YamlMember(Alias = "controller")] [JsonProperty("controller", NullValueHandling = NullValueHandling.Ignore)] public string Controller { get; set; } /// /// parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters. /// [YamlMember(Alias = "parameters")] [JsonProperty("parameters", NullValueHandling = NullValueHandling.Ignore)] public IngressClassParametersReferenceV1 Parameters { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressClassV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class. /// [KubeObject("IngressClass", "networking.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/networking.k8s.io/v1/ingressclasses")] [KubeApi(KubeAction.Create, "apis/networking.k8s.io/v1/ingressclasses")] [KubeApi(KubeAction.Get, "apis/networking.k8s.io/v1/ingressclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/networking.k8s.io/v1/ingressclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/networking.k8s.io/v1/ingressclasses/{name}")] [KubeApi(KubeAction.Update, "apis/networking.k8s.io/v1/ingressclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/networking.k8s.io/v1/watch/ingressclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/networking.k8s.io/v1/ingressclasses")] [KubeApi(KubeAction.Watch, "apis/networking.k8s.io/v1/watch/ingressclasses/{name}")] public partial class IngressClassV1 : KubeResourceV1 { /// /// spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public IngressClassSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressList is a collection of Ingress. /// [KubeListItem("Ingress", "networking.k8s.io/v1")] [KubeObject("IngressList", "networking.k8s.io/v1")] public partial class IngressListV1 : KubeResourceListV1 { /// /// items is the list of Ingress. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/IngressListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressList is a collection of Ingress. /// [KubeListItem("Ingress", "extensions/v1beta1")] [KubeObject("IngressList", "extensions/v1beta1")] public partial class IngressListV1Beta1 : KubeResourceListV1 { /// /// Items is the list of Ingress. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/IngressLoadBalancerIngressV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressLoadBalancerIngress represents the status of a load-balancer ingress point. /// public partial class IngressLoadBalancerIngressV1 { /// /// hostname is set for load-balancer ingress points that are DNS based. /// [YamlMember(Alias = "hostname")] [JsonProperty("hostname", NullValueHandling = NullValueHandling.Ignore)] public string Hostname { get; set; } /// /// ip is set for load-balancer ingress points that are IP based. /// [YamlMember(Alias = "ip")] [JsonProperty("ip", NullValueHandling = NullValueHandling.Ignore)] public string Ip { get; set; } /// /// ports provides information about the ports exposed by this LoadBalancer. /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/IngressLoadBalancerStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressLoadBalancerStatus represents the status of a load-balancer. /// public partial class IngressLoadBalancerStatusV1 { /// /// ingress is a list containing ingress points for the load-balancer. /// [YamlMember(Alias = "ingress")] [JsonProperty("ingress", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ingress { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeIngress() => Ingress.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/IngressPortStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressPortStatus represents the error condition of a service port /// public partial class IngressPortStatusV1 { /// /// protocol is the protocol of the ingress port. The supported values are: "TCP", "UDP", "SCTP" /// [YamlMember(Alias = "protocol")] [JsonProperty("protocol", NullValueHandling = NullValueHandling.Include)] public string Protocol { get; set; } /// /// error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use /// CamelCase names /// - cloud provider specific error values must have names that comply with the /// format foo.example.com/CamelCase. /// [YamlMember(Alias = "error")] [JsonProperty("error", NullValueHandling = NullValueHandling.Ignore)] public string Error { get; set; } /// /// port is the port number of the ingress port. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Include)] public int Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue. /// public partial class IngressRuleV1 { /// /// Description not provided. /// [YamlMember(Alias = "http")] [JsonProperty("http", NullValueHandling = NullValueHandling.Ignore)] public HTTPIngressRuleValueV1 Http { get; set; } /// /// host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to /// the IP in the Spec of the parent Ingress. /// 2. The `:` delimiter is not respected because ports are not allowed. /// Currently the port of an Ingress is implicitly :80 for http and /// :443 for https. /// Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue. /// /// host can be "precise" which is a domain name without the terminating dot of a network host (e.g. "foo.bar.com") or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. "*.foo.com"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == "*"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule. /// [YamlMember(Alias = "host")] [JsonProperty("host", NullValueHandling = NullValueHandling.Ignore)] public string Host { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressRuleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue. /// public partial class IngressRuleV1Beta1 { /// /// Description not provided. /// [YamlMember(Alias = "http")] [JsonProperty("http", NullValueHandling = NullValueHandling.Ignore)] public HTTPIngressRuleValueV1Beta1 Http { get; set; } /// /// Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the /// IP in the Spec of the parent Ingress. /// 2. The `:` delimiter is not respected because ports are not allowed. /// Currently the port of an Ingress is implicitly :80 for http and /// :443 for https. /// Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue. /// [YamlMember(Alias = "host")] [JsonProperty("host", NullValueHandling = NullValueHandling.Ignore)] public string Host { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressServiceBackendV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressServiceBackend references a Kubernetes Service as a Backend. /// public partial class IngressServiceBackendV1 { /// /// name is the referenced service. The service must exist in the same namespace as the Ingress object. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// port of the referenced service. A port name or port number is required for a IngressServiceBackend. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Ignore)] public ServiceBackendPortV1 Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressSpec describes the Ingress the user wishes to exist. /// public partial class IngressSpecV1 { /// /// defaultBackend is the backend that should handle requests that don't match any rule. If Rules are not specified, DefaultBackend must be specified. If DefaultBackend is not set, the handling of requests that do not match any of the rules will be up to the Ingress controller. /// [YamlMember(Alias = "defaultBackend")] [JsonProperty("defaultBackend", NullValueHandling = NullValueHandling.Ignore)] public IngressBackendV1 DefaultBackend { get; set; } /// /// ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present. /// [YamlMember(Alias = "ingressClassName")] [JsonProperty("ingressClassName", NullValueHandling = NullValueHandling.Ignore)] public string IngressClassName { get; set; } /// /// rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; /// /// tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI. /// [YamlMember(Alias = "tls")] [JsonProperty("tls", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Tls { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTls() => Tls.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/IngressSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressSpec describes the Ingress the user wishes to exist. /// public partial class IngressSpecV1Beta1 { /// /// A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default. /// [YamlMember(Alias = "backend")] [JsonProperty("backend", NullValueHandling = NullValueHandling.Ignore)] public IngressBackendV1Beta1 Backend { get; set; } /// /// A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; /// /// TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI. /// [YamlMember(Alias = "tls")] [JsonProperty("tls", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Tls { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTls() => Tls.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/IngressStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressStatus describe the current state of the Ingress. /// public partial class IngressStatusV1 { /// /// loadBalancer contains the current status of the load-balancer. /// [YamlMember(Alias = "loadBalancer")] [JsonProperty("loadBalancer", NullValueHandling = NullValueHandling.Ignore)] public IngressLoadBalancerStatusV1 LoadBalancer { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressStatus describe the current state of the Ingress. /// public partial class IngressStatusV1Beta1 { /// /// LoadBalancer contains the current status of the load-balancer. /// [YamlMember(Alias = "loadBalancer")] [JsonProperty("loadBalancer", NullValueHandling = NullValueHandling.Ignore)] public LoadBalancerStatusV1 LoadBalancer { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressTLSV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressTLS describes the transport layer security associated with an ingress. /// public partial class IngressTLSV1 { /// /// secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the "Host" header field used by an IngressRule, the SNI host is used for termination and value of the "Host" header is used for routing. /// [YamlMember(Alias = "secretName")] [JsonProperty("secretName", NullValueHandling = NullValueHandling.Ignore)] public string SecretName { get; set; } /// /// hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified. /// [YamlMember(Alias = "hosts")] [JsonProperty("hosts", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Hosts { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHosts() => Hosts.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/IngressTLSV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// IngressTLS describes the transport layer security associated with an Ingress. /// public partial class IngressTLSV1Beta1 { /// /// SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the "Host" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing. /// [YamlMember(Alias = "secretName")] [JsonProperty("secretName", NullValueHandling = NullValueHandling.Ignore)] public string SecretName { get; set; } /// /// Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified. /// [YamlMember(Alias = "hosts")] [JsonProperty("hosts", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Hosts { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHosts() => Hosts.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/IngressV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. /// [KubeObject("Ingress", "networking.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/networking.k8s.io/v1/ingresses")] [KubeApi(KubeAction.WatchList, "apis/networking.k8s.io/v1/watch/ingresses")] [KubeApi(KubeAction.List, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.Create, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.Get, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Patch, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Delete, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Update, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.WatchList, "apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.DeleteCollection, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.Get, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status")] [KubeApi(KubeAction.Watch, "apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Patch, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status")] [KubeApi(KubeAction.Update, "apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status")] public partial class IngressV1 : KubeResourceV1 { /// /// spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public IngressSpecV1 Spec { get; set; } /// /// status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public IngressStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/IngressV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. /// [KubeObject("Ingress", "extensions/v1beta1")] [KubeApi(KubeAction.List, "apis/extensions/v1beta1/ingresses")] [KubeApi(KubeAction.WatchList, "apis/extensions/v1beta1/watch/ingresses")] [KubeApi(KubeAction.List, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.Create, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.Get, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Patch, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Delete, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Update, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.WatchList, "apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.DeleteCollection, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses")] [KubeApi(KubeAction.Get, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status")] [KubeApi(KubeAction.Watch, "apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}")] [KubeApi(KubeAction.Patch, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status")] [KubeApi(KubeAction.Update, "apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status")] public partial class IngressV1Beta1 : KubeResourceV1 { /// /// Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public IngressSpecV1Beta1 Spec { get; set; } /// /// Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public IngressStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/InitializerConfigurationListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// InitializerConfigurationList is a list of InitializerConfiguration. /// [KubeListItem("InitializerConfiguration", "admissionregistration.k8s.io/v1alpha1")] [KubeObject("InitializerConfigurationList", "admissionregistration.k8s.io/v1alpha1")] public partial class InitializerConfigurationListV1Alpha1 : KubeResourceListV1 { /// /// List of InitializerConfiguration. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/InitializerConfigurationV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// InitializerConfiguration describes the configuration of initializers. /// [KubeObject("InitializerConfiguration", "admissionregistration.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}")] public partial class InitializerConfigurationV1Alpha1 : KubeResourceV1 { /// /// Initializers is a list of resources and their default initializers Order-sensitive. When merging multiple InitializerConfigurations, we sort the initializers from different InitializerConfigurations by the name of the InitializerConfigurations; the order of the initializers from the same InitializerConfiguration is preserved. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "initializers")] [JsonProperty("initializers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Initializers { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeInitializers() => Initializers.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/InitializerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Initializer is information about an initializer that has not yet completed. /// public partial class InitializerV1 { /// /// name of the process that is responsible for initializing this object. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/InitializerV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Initializer describes the name and the failure policy of an initializer, and what resources it applies to. /// public partial class InitializerV1Alpha1 { /// /// Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where "alwayspullimages" is the name of the webhook, and kubernetes.io is the name of the organization. Required /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Rules describes what resources/subresources the initializer cares about. The initializer cares about an operation if it matches _any_ Rule. Rule.Resources must not include subresources. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/InitializersV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Initializers tracks the progress of initialization. /// public partial class InitializersV1 { /// /// Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "pending")] [JsonProperty("pending", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Pending { get; } = new List(); /// /// If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion. /// [YamlMember(Alias = "result")] [JsonProperty("result", NullValueHandling = NullValueHandling.Ignore)] public StatusV1 Result { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrArrayV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. /// public partial class JSONSchemaPropsOrArrayV1 { } } ================================================ FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrBoolV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. /// public partial class JSONSchemaPropsOrBoolV1 { } } ================================================ FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrBoolV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. /// public partial class JSONSchemaPropsOrBoolV1Beta1 { /// /// Description not provided. /// [YamlMember(Alias = "Schema")] [JsonProperty("Schema", NullValueHandling = NullValueHandling.Include)] public JSONSchemaPropsV1Beta1 Schema { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "Allows")] [JsonProperty("Allows", NullValueHandling = NullValueHandling.Include)] public bool Allows { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrStringArrayV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. /// public partial class JSONSchemaPropsOrStringArrayV1 { } } ================================================ FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrStringArrayV1Beta1.cs ================================================ using Newtonsoft.Json; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. /// public partial class JSONSchemaPropsOrStringArrayV1Beta1 { /// /// Description not provided. /// [YamlMember(Alias = "Schema")] [JsonProperty("Schema", NullValueHandling = NullValueHandling.Include)] public JSONSchemaPropsV1Beta1 Schema { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "Property")] [JsonProperty("Property", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Property { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/JSONSchemaPropsV1.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). /// public partial class JSONSchemaPropsV1 { /// /// Description not provided. /// [YamlMember(Alias = "$schema")] [JsonProperty("$schema", NullValueHandling = NullValueHandling.Ignore)] public string Schema { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "id")] [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] public string Id { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "required")] [JsonProperty("required", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Required { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequired() => Required.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "example")] [JsonProperty("example", NullValueHandling = NullValueHandling.Ignore)] public object Example { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "nullable")] [JsonProperty("nullable", NullValueHandling = NullValueHandling.Ignore)] public bool? Nullable { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "title")] [JsonProperty("title", NullValueHandling = NullValueHandling.Ignore)] public string Title { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata). /// [YamlMember(Alias = "x-kubernetes-embedded-resource")] [JsonProperty("x-kubernetes-embedded-resource", NullValueHandling = NullValueHandling.Ignore)] public bool? KubernetesEmbeddedResource { get; set; } /// /// 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: /// /// 1) `atomic`: the list is treated as a single entity, like a scalar. /// Atomic lists will be entirely replaced when updated. This extension /// may be used on any type of list (struct, scalar, ...). /// 2) `set`: /// Sets are lists that must not have multiple items with the same value. Each /// value must be a scalar, an object with x-kubernetes-map-type `atomic` or an /// array with x-kubernetes-list-type `atomic`. /// 3) `map`: /// These lists are like maps in that their elements have a non-index key /// used to identify them. Order is preserved upon merge. The map tag /// must only be used on a list with elements of type object. /// Defaults to atomic for arrays. /// [YamlMember(Alias = "x-kubernetes-list-type")] [JsonProperty("x-kubernetes-list-type", NullValueHandling = NullValueHandling.Ignore)] public string KubernetesListType { get; set; } /// /// x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values: /// /// 1) `granular`: /// These maps are actual maps (key-value pairs) and each fields are independent /// from each other (they can each be manipulated by separate actors). This is /// the default behaviour for all maps. /// 2) `atomic`: the list is treated as a single entity, like a scalar. /// Atomic maps will be entirely replaced when updated. /// [YamlMember(Alias = "x-kubernetes-map-type")] [JsonProperty("x-kubernetes-map-type", NullValueHandling = NullValueHandling.Ignore)] public string KubernetesMapType { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "$ref")] [JsonProperty("$ref", NullValueHandling = NullValueHandling.Ignore)] public string Ref { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "allOf")] [JsonProperty("allOf", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllOf { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllOf() => AllOf.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "anyOf")] [JsonProperty("anyOf", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AnyOf { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAnyOf() => AnyOf.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "multipleOf")] [JsonProperty("multipleOf", NullValueHandling = NullValueHandling.Ignore)] public double? MultipleOf { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "oneOf")] [JsonProperty("oneOf", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List OneOf { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOneOf() => OneOf.Count > 0; /// /// x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns: /// /// 1) anyOf: /// - type: integer /// - type: string /// 2) allOf: /// - anyOf: /// - type: integer /// - type: string /// - ... zero or more /// [YamlMember(Alias = "x-kubernetes-int-or-string")] [JsonProperty("x-kubernetes-int-or-string", NullValueHandling = NullValueHandling.Ignore)] public bool? KubernetesIntOrString { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "maxLength")] [JsonProperty("maxLength", NullValueHandling = NullValueHandling.Ignore)] public long? MaxLength { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minLength")] [JsonProperty("minLength", NullValueHandling = NullValueHandling.Ignore)] public long? MinLength { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "enum")] [JsonProperty("enum", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Enum { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnum() => Enum.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "exclusiveMaximum")] [JsonProperty("exclusiveMaximum", NullValueHandling = NullValueHandling.Ignore)] public bool? ExclusiveMaximum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "exclusiveMinimum")] [JsonProperty("exclusiveMinimum", NullValueHandling = NullValueHandling.Ignore)] public bool? ExclusiveMinimum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "maximum")] [JsonProperty("maximum", NullValueHandling = NullValueHandling.Ignore)] public double? Maximum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minimum")] [JsonProperty("minimum", NullValueHandling = NullValueHandling.Ignore)] public double? Minimum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "pattern")] [JsonProperty("pattern", NullValueHandling = NullValueHandling.Ignore)] public string Pattern { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "additionalItems")] [JsonProperty("additionalItems", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsOrBoolV1 AdditionalItems { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "additionalProperties")] [JsonProperty("additionalProperties", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsOrBoolV1 AdditionalProperties { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "definitions")] [JsonProperty("definitions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Definitions { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDefinitions() => Definitions.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "dependencies")] [JsonProperty("dependencies", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Dependencies { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDependencies() => Dependencies.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "externalDocs")] [JsonProperty("externalDocs", NullValueHandling = NullValueHandling.Ignore)] public ExternalDocumentationV1 ExternalDocs { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "items")] [JsonProperty("items", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsV1 Items { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "maxItems")] [JsonProperty("maxItems", NullValueHandling = NullValueHandling.Ignore)] public long? MaxItems { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "maxProperties")] [JsonProperty("maxProperties", NullValueHandling = NullValueHandling.Ignore)] public long? MaxProperties { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minItems")] [JsonProperty("minItems", NullValueHandling = NullValueHandling.Ignore)] public long? MinItems { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minProperties")] [JsonProperty("minProperties", NullValueHandling = NullValueHandling.Ignore)] public long? MinProperties { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "patternProperties")] [JsonProperty("patternProperties", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary PatternProperties { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePatternProperties() => PatternProperties.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "properties")] [JsonProperty("properties", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Properties { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeProperties() => Properties.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "uniqueItems")] [JsonProperty("uniqueItems", NullValueHandling = NullValueHandling.Ignore)] public bool? UniqueItems { get; set; } /// /// x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map. /// /// This tag MUST only be used on lists that have the "x-kubernetes-list-type" extension set to "map". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported). /// /// The properties specified must either be required or have a default value, to ensure those properties are present for all list items. /// [YamlMember(Alias = "x-kubernetes-list-map-keys")] [JsonProperty("x-kubernetes-list-map-keys", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List KubernetesListMapKeys { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeKubernetesListMapKeys() => KubernetesListMapKeys.Count > 0; /// /// x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden. /// [YamlMember(Alias = "x-kubernetes-preserve-unknown-fields")] [JsonProperty("x-kubernetes-preserve-unknown-fields", NullValueHandling = NullValueHandling.Ignore)] public bool? KubernetesPreserveUnknownFields { get; set; } /// /// x-kubernetes-validations describes a list of validation rules written in the CEL expression language. /// [MergeStrategy(Key = "rule")] [YamlMember(Alias = "x-kubernetes-validations")] [JsonProperty("x-kubernetes-validations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List KubernetesValidations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeKubernetesValidations() => KubernetesValidations.Count > 0; /// /// 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. /// [YamlMember(Alias = "default")] [JsonProperty("default", NullValueHandling = NullValueHandling.Ignore)] public object Default { get; set; } /// /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: /// /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. /// [YamlMember(Alias = "format")] [JsonProperty("format", NullValueHandling = NullValueHandling.Ignore)] public string Format { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "not")] [JsonProperty("not", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsV1 Not { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JSONSchemaPropsV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). /// public partial class JSONSchemaPropsV1Beta1 { /// /// Description not provided. /// [YamlMember(Alias = "$schema")] [JsonProperty("$schema", NullValueHandling = NullValueHandling.Ignore)] public string Schema { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "id")] [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] public string Id { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "required")] [JsonProperty("required", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Required { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequired() => Required.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "example")] [JsonProperty("example", NullValueHandling = NullValueHandling.Ignore)] public JSONV1Beta1 Example { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "title")] [JsonProperty("title", NullValueHandling = NullValueHandling.Ignore)] public string Title { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "$ref")] [JsonProperty("$ref", NullValueHandling = NullValueHandling.Ignore)] public string Ref { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "allOf")] [JsonProperty("allOf", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllOf { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllOf() => AllOf.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "anyOf")] [JsonProperty("anyOf", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AnyOf { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAnyOf() => AnyOf.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "multipleOf")] [JsonProperty("multipleOf", NullValueHandling = NullValueHandling.Ignore)] public double? MultipleOf { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "oneOf")] [JsonProperty("oneOf", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List OneOf { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOneOf() => OneOf.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "maxLength")] [JsonProperty("maxLength", NullValueHandling = NullValueHandling.Ignore)] public long? MaxLength { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minLength")] [JsonProperty("minLength", NullValueHandling = NullValueHandling.Ignore)] public long? MinLength { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "enum")] [JsonProperty("enum", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Enum { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnum() => Enum.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "exclusiveMaximum")] [JsonProperty("exclusiveMaximum", NullValueHandling = NullValueHandling.Ignore)] public bool? ExclusiveMaximum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "exclusiveMinimum")] [JsonProperty("exclusiveMinimum", NullValueHandling = NullValueHandling.Ignore)] public bool? ExclusiveMinimum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "maximum")] [JsonProperty("maximum", NullValueHandling = NullValueHandling.Ignore)] public double? Maximum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minimum")] [JsonProperty("minimum", NullValueHandling = NullValueHandling.Ignore)] public double? Minimum { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "pattern")] [JsonProperty("pattern", NullValueHandling = NullValueHandling.Ignore)] public string Pattern { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "additionalItems")] [JsonProperty("additionalItems", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsOrBoolV1Beta1 AdditionalItems { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "additionalProperties")] [JsonProperty("additionalProperties", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsOrBoolV1Beta1 AdditionalProperties { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "definitions")] [JsonProperty("definitions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Definitions { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDefinitions() => Definitions.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "dependencies")] [JsonProperty("dependencies", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Dependencies { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDependencies() => Dependencies.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "externalDocs")] [JsonProperty("externalDocs", NullValueHandling = NullValueHandling.Ignore)] public ExternalDocumentationV1Beta1 ExternalDocs { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "items")] [JsonProperty("items", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsV1Beta1 Items { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "maxItems")] [JsonProperty("maxItems", NullValueHandling = NullValueHandling.Ignore)] public long? MaxItems { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "maxProperties")] [JsonProperty("maxProperties", NullValueHandling = NullValueHandling.Ignore)] public long? MaxProperties { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minItems")] [JsonProperty("minItems", NullValueHandling = NullValueHandling.Ignore)] public long? MinItems { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "minProperties")] [JsonProperty("minProperties", NullValueHandling = NullValueHandling.Ignore)] public long? MinProperties { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "patternProperties")] [JsonProperty("patternProperties", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary PatternProperties { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePatternProperties() => PatternProperties.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "properties")] [JsonProperty("properties", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Properties { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeProperties() => Properties.Count > 0; /// /// Description not provided. /// [YamlMember(Alias = "uniqueItems")] [JsonProperty("uniqueItems", NullValueHandling = NullValueHandling.Ignore)] public bool? UniqueItems { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "default")] [JsonProperty("default", NullValueHandling = NullValueHandling.Ignore)] public JSONV1Beta1 Default { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "format")] [JsonProperty("format", NullValueHandling = NullValueHandling.Ignore)] public string Format { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "not")] [JsonProperty("not", NullValueHandling = NullValueHandling.Ignore)] public JSONSchemaPropsV1Beta1 Not { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JSONV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. /// public partial class JSONV1Beta1 { /// /// Description not provided. /// [YamlMember(Alias = "Raw")] [JsonProperty("Raw", NullValueHandling = NullValueHandling.Include)] public string Raw { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JobConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JobCondition describes current state of a job. /// public partial class JobConditionV1 { /// /// Last time the condition was checked. /// [YamlMember(Alias = "lastProbeTime")] [JsonProperty("lastProbeTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastProbeTime { get; set; } /// /// Last time the condition transit from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// Human readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of job condition, Complete or Failed. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// (brief) reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JobListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JobList is a collection of jobs. /// [KubeListItem("Job", "batch/v1")] [KubeObject("JobList", "batch/v1")] public partial class JobListV1 : KubeResourceListV1 { /// /// items is the list of Jobs. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/JobSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JobSpec describes how the job execution will look like. /// public partial class JobSpecV1 { /// /// 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. /// [YamlMember(Alias = "suspend")] [JsonProperty("suspend", NullValueHandling = NullValueHandling.Ignore)] public bool? Suspend { get; set; } /// /// 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. /// [YamlMember(Alias = "ttlSecondsAfterFinished")] [JsonProperty("ttlSecondsAfterFinished", NullValueHandling = NullValueHandling.Ignore)] public int? TtlSecondsAfterFinished { get; set; } /// /// 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. /// [YamlMember(Alias = "completionMode")] [JsonProperty("completionMode", NullValueHandling = NullValueHandling.Ignore)] public string CompletionMode { get; set; } /// /// Describes the pod that will be created when executing a job. The only allowed template.spec.restartPolicy values are "Never" or "OnFailure". More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// 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/ /// [YamlMember(Alias = "parallelism")] [JsonProperty("parallelism", NullValueHandling = NullValueHandling.Ignore)] public int? Parallelism { get; set; } /// /// 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 /// [YamlMember(Alias = "manualSelector")] [JsonProperty("manualSelector", NullValueHandling = NullValueHandling.Ignore)] public bool? ManualSelector { get; set; } /// /// 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 /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again. /// [YamlMember(Alias = "activeDeadlineSeconds")] [JsonProperty("activeDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? ActiveDeadlineSeconds { get; set; } /// /// 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/ /// [YamlMember(Alias = "completions")] [JsonProperty("completions", NullValueHandling = NullValueHandling.Ignore)] public int? Completions { get; set; } /// /// 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). /// [YamlMember(Alias = "maxFailedIndexes")] [JsonProperty("maxFailedIndexes", NullValueHandling = NullValueHandling.Ignore)] public int? MaxFailedIndexes { get; set; } /// /// Specifies the number of retries before marking this job failed. Defaults to 6 /// [YamlMember(Alias = "backoffLimit")] [JsonProperty("backoffLimit", NullValueHandling = NullValueHandling.Ignore)] public int? BackoffLimit { get; set; } /// /// 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). /// [YamlMember(Alias = "backoffLimitPerIndex")] [JsonProperty("backoffLimitPerIndex", NullValueHandling = NullValueHandling.Ignore)] public int? BackoffLimitPerIndex { get; set; } /// /// 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 63 characters. This field is immutable. /// /// This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). /// [YamlMember(Alias = "managedBy")] [JsonProperty("managedBy", NullValueHandling = NullValueHandling.Ignore)] public string ManagedBy { get; set; } /// /// Specifies the policy of handling failed pods. In particular, it allows to specify the set of actions and conditions which need to be satisfied to take the associated action. If empty, the default behaviour applies - the counter of failed pods, represented by the jobs's .status.failed field, is incremented and it is checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure. /// [YamlMember(Alias = "podFailurePolicy")] [JsonProperty("podFailurePolicy", NullValueHandling = NullValueHandling.Ignore)] public PodFailurePolicyV1 PodFailurePolicy { get; set; } /// /// 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. /// [YamlMember(Alias = "podReplacementPolicy")] [JsonProperty("podReplacementPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PodReplacementPolicy { get; set; } /// /// 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. /// /// This field is beta-level. To use this field, you must enable the `JobSuccessPolicy` feature gate (enabled by default). /// [YamlMember(Alias = "successPolicy")] [JsonProperty("successPolicy", NullValueHandling = NullValueHandling.Ignore)] public SuccessPolicyV1 SuccessPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JobStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JobStatus represents the current state of a Job. /// public partial class JobStatusV1 { /// /// The number of pods which reached phase Failed. The value increases monotonically. /// [YamlMember(Alias = "failed")] [JsonProperty("failed", NullValueHandling = NullValueHandling.Ignore)] public int? Failed { get; set; } /// /// 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. /// [YamlMember(Alias = "succeeded")] [JsonProperty("succeeded", NullValueHandling = NullValueHandling.Ignore)] public int? Succeeded { get; set; } /// /// The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs. /// [YamlMember(Alias = "active")] [JsonProperty("active", NullValueHandling = NullValueHandling.Ignore)] public int? Active { get; set; } /// /// 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. /// [YamlMember(Alias = "completionTime")] [JsonProperty("completionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? CompletionTime { get; set; } /// /// 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. /// [YamlMember(Alias = "startTime")] [JsonProperty("startTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? StartTime { get; set; } /// /// 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). /// [YamlMember(Alias = "terminating")] [JsonProperty("terminating", NullValueHandling = NullValueHandling.Ignore)] public int? Terminating { get; set; } /// /// 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". /// [YamlMember(Alias = "completedIndexes")] [JsonProperty("completedIndexes", NullValueHandling = NullValueHandling.Ignore)] public string CompletedIndexes { get; set; } /// /// 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/ /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// 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). /// [YamlMember(Alias = "failedIndexes")] [JsonProperty("failedIndexes", NullValueHandling = NullValueHandling.Ignore)] public string FailedIndexes { get; set; } /// /// uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters. /// /// The 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: /// /// 1. 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 /// counter. /// /// Old jobs might not be tracked using this field, in which case the field remains null. The structure is empty for finished jobs. /// [YamlMember(Alias = "uncountedTerminatedPods")] [JsonProperty("uncountedTerminatedPods", NullValueHandling = NullValueHandling.Ignore)] public UncountedTerminatedPodsV1 UncountedTerminatedPods { get; set; } /// /// The number of active pods which have a Ready condition and are not terminating (without a deletionTimestamp). /// [YamlMember(Alias = "ready")] [JsonProperty("ready", NullValueHandling = NullValueHandling.Ignore)] public int? Ready { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JobTemplateSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JobTemplateSpec describes the data a Job should have when created from a template /// public partial class JobTemplateSpecV1 { /// /// Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata /// [YamlMember(Alias = "metadata")] [JsonProperty("metadata", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetaV1 Metadata { get; set; } /// /// Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public JobSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JobTemplateSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JobTemplateSpec describes the data a Job should have when created from a template /// public partial class JobTemplateSpecV1Beta1 { /// /// Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata /// [YamlMember(Alias = "metadata")] [JsonProperty("metadata", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetaV1 Metadata { get; set; } /// /// Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public JobSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JobTemplateSpecV2Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// JobTemplateSpec describes the data a Job should have when created from a template /// public partial class JobTemplateSpecV2Alpha1 { /// /// Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata /// [YamlMember(Alias = "metadata")] [JsonProperty("metadata", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetaV1 Metadata { get; set; } /// /// Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public JobSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/JobV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Job represents the configuration of a single job. /// [KubeObject("Job", "batch/v1")] [KubeApi(KubeAction.List, "apis/batch/v1/jobs")] [KubeApi(KubeAction.WatchList, "apis/batch/v1/watch/jobs")] [KubeApi(KubeAction.List, "apis/batch/v1/namespaces/{namespace}/jobs")] [KubeApi(KubeAction.Create, "apis/batch/v1/namespaces/{namespace}/jobs")] [KubeApi(KubeAction.Get, "apis/batch/v1/namespaces/{namespace}/jobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v1/namespaces/{namespace}/jobs/{name}")] [KubeApi(KubeAction.Delete, "apis/batch/v1/namespaces/{namespace}/jobs/{name}")] [KubeApi(KubeAction.Update, "apis/batch/v1/namespaces/{namespace}/jobs/{name}")] [KubeApi(KubeAction.WatchList, "apis/batch/v1/watch/namespaces/{namespace}/jobs")] [KubeApi(KubeAction.DeleteCollection, "apis/batch/v1/namespaces/{namespace}/jobs")] [KubeApi(KubeAction.Get, "apis/batch/v1/namespaces/{namespace}/jobs/{name}/status")] [KubeApi(KubeAction.Watch, "apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}")] [KubeApi(KubeAction.Patch, "apis/batch/v1/namespaces/{namespace}/jobs/{name}/status")] [KubeApi(KubeAction.Update, "apis/batch/v1/namespaces/{namespace}/jobs/{name}/status")] public partial class JobV1 : KubeResourceV1 { /// /// Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public JobSpecV1 Spec { get; set; } /// /// Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public JobStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/KeyToPathV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Maps a string key to a path within a volume. /// public partial class KeyToPathV1 { /// /// mode is 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. /// [YamlMember(Alias = "mode")] [JsonProperty("mode", NullValueHandling = NullValueHandling.Ignore)] public int? Mode { get; set; } /// /// path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } /// /// key is the key to project. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LabelSelectorAttributesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LabelSelectorAttributes indicates a label limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid. /// public partial class LabelSelectorAttributesV1 { /// /// rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present. /// [YamlMember(Alias = "rawSelector")] [JsonProperty("rawSelector", NullValueHandling = NullValueHandling.Ignore)] public string RawSelector { get; set; } /// /// requirements is the parsed interpretation of a label selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood. /// [YamlMember(Alias = "requirements")] [JsonProperty("requirements", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Requirements { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequirements() => Requirements.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/LabelSelectorRequirementV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. /// public partial class LabelSelectorRequirementV1 { /// /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. /// [YamlMember(Alias = "operator")] [JsonProperty("operator", NullValueHandling = NullValueHandling.Include)] public string Operator { get; set; } /// /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. /// [YamlMember(Alias = "values")] [JsonProperty("values", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Values { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValues() => Values.Count > 0; /// /// key is the label key that the selector applies to. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LabelSelectorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. /// public partial class LabelSelectorV1 { /// /// matchExpressions is a list of label selector requirements. The requirements are ANDed. /// [YamlMember(Alias = "matchExpressions")] [JsonProperty("matchExpressions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchExpressions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchExpressions() => MatchExpressions.Count > 0; /// /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. /// [YamlMember(Alias = "matchLabels")] [JsonProperty("matchLabels", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary MatchLabels { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchLabels() => MatchLabels.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/LeaseCandidateListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LeaseCandidateList is a list of Lease objects. /// [KubeListItem("LeaseCandidate", "coordination.k8s.io/v1alpha1")] [KubeObject("LeaseCandidateList", "coordination.k8s.io/v1alpha1")] public partial class LeaseCandidateListV1Alpha1 : KubeResourceListV1 { /// /// items is a list of schema objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/LeaseCandidateSpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LeaseCandidateSpec is a specification of a Lease. /// public partial class LeaseCandidateSpecV1Alpha1 { /// /// LeaseName is the name of the lease for which this candidate is contending. This field is immutable. /// [YamlMember(Alias = "leaseName")] [JsonProperty("leaseName", NullValueHandling = NullValueHandling.Include)] public string LeaseName { get; set; } /// /// PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime. /// [YamlMember(Alias = "pingTime")] [JsonProperty("pingTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? PingTime { get; set; } /// /// RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates. /// [YamlMember(Alias = "renewTime")] [JsonProperty("renewTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? RenewTime { get; set; } /// /// BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required when strategy is "OldestEmulationVersion" /// [YamlMember(Alias = "binaryVersion")] [JsonProperty("binaryVersion", NullValueHandling = NullValueHandling.Ignore)] public string BinaryVersion { get; set; } /// /// EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is "OldestEmulationVersion" /// [YamlMember(Alias = "emulationVersion")] [JsonProperty("emulationVersion", NullValueHandling = NullValueHandling.Ignore)] public string EmulationVersion { get; set; } /// /// PreferredStrategies indicates the list of strategies for picking the leader for coordinated leader election. The list is ordered, and the first strategy supersedes all other strategies. The list is used by coordinated leader election to make a decision about the final election strategy. This follows as - If all clients have strategy X as the first element in this list, strategy X will be used. - If a candidate has strategy [X] and another candidate has strategy [Y, X], Y supersedes X and strategy Y /// will be used. /// - If a candidate has strategy [X, Y] and another candidate has strategy [Y, X], this is a user error and leader /// election will not operate the Lease until resolved. /// (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. /// [YamlMember(Alias = "preferredStrategies")] [JsonProperty("preferredStrategies", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PreferredStrategies { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/LeaseCandidateV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates. /// [KubeObject("LeaseCandidate", "coordination.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/coordination.k8s.io/v1alpha1/leasecandidates")] [KubeApi(KubeAction.WatchList, "apis/coordination.k8s.io/v1alpha1/watch/leasecandidates")] [KubeApi(KubeAction.List, "apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates")] [KubeApi(KubeAction.Create, "apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates")] [KubeApi(KubeAction.Get, "apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}")] [KubeApi(KubeAction.Patch, "apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}")] [KubeApi(KubeAction.Delete, "apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}")] [KubeApi(KubeAction.Update, "apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}")] [KubeApi(KubeAction.WatchList, "apis/coordination.k8s.io/v1alpha1/watch/namespaces/{namespace}/leasecandidates")] [KubeApi(KubeAction.DeleteCollection, "apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates")] [KubeApi(KubeAction.Watch, "apis/coordination.k8s.io/v1alpha1/watch/namespaces/{namespace}/leasecandidates/{name}")] public partial class LeaseCandidateV1Alpha1 : KubeResourceV1 { /// /// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public LeaseCandidateSpecV1Alpha1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LeaseListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LeaseList is a list of Lease objects. /// [KubeListItem("Lease", "coordination.k8s.io/v1")] [KubeObject("LeaseList", "coordination.k8s.io/v1")] public partial class LeaseListV1 : KubeResourceListV1 { /// /// items is a list of schema objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/LeaseSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LeaseSpec is a specification of a Lease. /// public partial class LeaseSpecV1 { /// /// acquireTime is a time when the current lease was acquired. /// [YamlMember(Alias = "acquireTime")] [JsonProperty("acquireTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? AcquireTime { get; set; } /// /// renewTime is a time when the current holder of a lease has last updated the lease. /// [YamlMember(Alias = "renewTime")] [JsonProperty("renewTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? RenewTime { get; set; } /// /// PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set. /// [YamlMember(Alias = "preferredHolder")] [JsonProperty("preferredHolder", NullValueHandling = NullValueHandling.Ignore)] public string PreferredHolder { get; set; } /// /// leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime. /// [YamlMember(Alias = "leaseDurationSeconds")] [JsonProperty("leaseDurationSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? LeaseDurationSeconds { get; set; } /// /// leaseTransitions is the number of transitions of a lease between holders. /// [YamlMember(Alias = "leaseTransitions")] [JsonProperty("leaseTransitions", NullValueHandling = NullValueHandling.Ignore)] public int? LeaseTransitions { get; set; } /// /// holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field. /// [YamlMember(Alias = "holderIdentity")] [JsonProperty("holderIdentity", NullValueHandling = NullValueHandling.Ignore)] public string HolderIdentity { get; set; } /// /// Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled. /// [YamlMember(Alias = "strategy")] [JsonProperty("strategy", NullValueHandling = NullValueHandling.Ignore)] public string Strategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LeaseV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Lease defines a lease concept. /// [KubeObject("Lease", "coordination.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/coordination.k8s.io/v1/leases")] [KubeApi(KubeAction.WatchList, "apis/coordination.k8s.io/v1/watch/leases")] [KubeApi(KubeAction.List, "apis/coordination.k8s.io/v1/namespaces/{namespace}/leases")] [KubeApi(KubeAction.Create, "apis/coordination.k8s.io/v1/namespaces/{namespace}/leases")] [KubeApi(KubeAction.Get, "apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}")] [KubeApi(KubeAction.Patch, "apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}")] [KubeApi(KubeAction.Delete, "apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}")] [KubeApi(KubeAction.Update, "apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}")] [KubeApi(KubeAction.WatchList, "apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases")] [KubeApi(KubeAction.DeleteCollection, "apis/coordination.k8s.io/v1/namespaces/{namespace}/leases")] [KubeApi(KubeAction.Watch, "apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}")] public partial class LeaseV1 : KubeResourceV1 { /// /// spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public LeaseSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LifecycleHandlerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified. /// public partial class LifecycleHandlerV1 { /// /// Exec specifies the action to take. /// [YamlMember(Alias = "exec")] [JsonProperty("exec", NullValueHandling = NullValueHandling.Ignore)] public ExecActionV1 Exec { get; set; } /// /// Sleep represents the duration that the container should sleep before being terminated. /// [YamlMember(Alias = "sleep")] [JsonProperty("sleep", NullValueHandling = NullValueHandling.Ignore)] public SleepActionV1 Sleep { get; set; } /// /// HTTPGet specifies the http request to perform. /// [YamlMember(Alias = "httpGet")] [JsonProperty("httpGet", NullValueHandling = NullValueHandling.Ignore)] public HTTPGetActionV1 HttpGet { get; set; } /// /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. /// [YamlMember(Alias = "tcpSocket")] [JsonProperty("tcpSocket", NullValueHandling = NullValueHandling.Ignore)] public TCPSocketActionV1 TcpSocket { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LifecycleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted. /// public partial class LifecycleV1 { /// /// PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks /// [YamlMember(Alias = "preStop")] [JsonProperty("preStop", NullValueHandling = NullValueHandling.Ignore)] public LifecycleHandlerV1 PreStop { get; set; } /// /// PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks /// [YamlMember(Alias = "postStart")] [JsonProperty("postStart", NullValueHandling = NullValueHandling.Ignore)] public LifecycleHandlerV1 PostStart { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LimitRangeItemV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitRangeItem defines a min/max usage limit for any resource that matches on kind. /// public partial class LimitRangeItemV1 { /// /// Type of resource that this limit applies to. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Min usage constraints on this kind by resource name. /// [YamlMember(Alias = "min")] [JsonProperty("min", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Min { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMin() => Min.Count > 0; /// /// MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource. /// [YamlMember(Alias = "maxLimitRequestRatio")] [JsonProperty("maxLimitRequestRatio", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary MaxLimitRequestRatio { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMaxLimitRequestRatio() => MaxLimitRequestRatio.Count > 0; /// /// Default resource requirement limit value by resource name if resource limit is omitted. /// [YamlMember(Alias = "default")] [JsonProperty("default", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Default { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDefault() => Default.Count > 0; /// /// DefaultRequest is the default resource requirement request value by resource name if resource request is omitted. /// [YamlMember(Alias = "defaultRequest")] [JsonProperty("defaultRequest", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary DefaultRequest { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDefaultRequest() => DefaultRequest.Count > 0; /// /// Max usage constraints on this kind by resource name. /// [YamlMember(Alias = "max")] [JsonProperty("max", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Max { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMax() => Max.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/LimitRangeListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitRangeList is a list of LimitRange items. /// [KubeListItem("LimitRange", "v1")] [KubeObject("LimitRangeList", "v1")] public partial class LimitRangeListV1 : KubeResourceListV1 { /// /// Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/LimitRangeSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitRangeSpec defines a min/max usage limit for resources that match on kind. /// public partial class LimitRangeSpecV1 { /// /// Limits is the list of LimitRangeItem objects that are enforced. /// [YamlMember(Alias = "limits")] [JsonProperty("limits", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Limits { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/LimitRangeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitRange sets resource usage limits for each kind of resource in a Namespace. /// [KubeObject("LimitRange", "v1")] [KubeApi(KubeAction.List, "api/v1/limitranges")] [KubeApi(KubeAction.WatchList, "api/v1/watch/limitranges")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/limitranges")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/limitranges")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/limitranges/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/limitranges/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/limitranges/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/limitranges/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/limitranges")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/limitranges")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/limitranges/{name}")] public partial class LimitRangeV1 : KubeResourceV1 { /// /// Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public LimitRangeSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LimitResponseV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitResponse defines how to handle requests that can not be executed right now. /// public partial class LimitResponseV1 { /// /// `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. "Reject" means that requests that can not be executed upon arrival are rejected. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// `queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `"Queue"`. /// [YamlMember(Alias = "queuing")] [JsonProperty("queuing", NullValueHandling = NullValueHandling.Ignore)] public QueuingConfigurationV1 Queuing { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LimitResponseV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitResponse defines how to handle requests that can not be executed right now. /// public partial class LimitResponseV1Beta3 { /// /// `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. "Reject" means that requests that can not be executed upon arrival are rejected. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// `queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `"Queue"`. /// [YamlMember(Alias = "queuing")] [JsonProperty("queuing", NullValueHandling = NullValueHandling.Ignore)] public QueuingConfigurationV1Beta3 Queuing { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LimitedPriorityLevelConfigurationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues: /// - How are requests for this priority level limited? /// - What should be done with requests that exceed the limit? /// public partial class LimitedPriorityLevelConfigurationV1 { /// /// `limitResponse` indicates what to do with requests that can not be executed right now /// [YamlMember(Alias = "limitResponse")] [JsonProperty("limitResponse", NullValueHandling = NullValueHandling.Ignore)] public LimitResponseV1 LimitResponse { get; set; } /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: /// /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) /// /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. /// /// If not specified, this field defaults to a value of 30. /// /// Setting this field to zero supports the construction of a "jail" for this priority level that is used to hold some request(s) /// [YamlMember(Alias = "nominalConcurrencyShares")] [JsonProperty("nominalConcurrencyShares", NullValueHandling = NullValueHandling.Ignore)] public int? NominalConcurrencyShares { get; set; } /// /// `borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows. /// /// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 ) /// /// The value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite. /// [YamlMember(Alias = "borrowingLimitPercent")] [JsonProperty("borrowingLimitPercent", NullValueHandling = NullValueHandling.Ignore)] public int? BorrowingLimitPercent { get; set; } /// /// `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. /// /// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 ) /// [YamlMember(Alias = "lendablePercent")] [JsonProperty("lendablePercent", NullValueHandling = NullValueHandling.Ignore)] public int? LendablePercent { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LimitedPriorityLevelConfigurationV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues: /// - How are requests for this priority level limited? /// - What should be done with requests that exceed the limit? /// public partial class LimitedPriorityLevelConfigurationV1Beta3 { /// /// `limitResponse` indicates what to do with requests that can not be executed right now /// [YamlMember(Alias = "limitResponse")] [JsonProperty("limitResponse", NullValueHandling = NullValueHandling.Ignore)] public LimitResponseV1Beta3 LimitResponse { get; set; } /// /// `nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values: /// /// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) /// /// Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30. /// [YamlMember(Alias = "nominalConcurrencyShares")] [JsonProperty("nominalConcurrencyShares", NullValueHandling = NullValueHandling.Ignore)] public int? NominalConcurrencyShares { get; set; } /// /// `borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows. /// /// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 ) /// /// The value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite. /// [YamlMember(Alias = "borrowingLimitPercent")] [JsonProperty("borrowingLimitPercent", NullValueHandling = NullValueHandling.Ignore)] public int? BorrowingLimitPercent { get; set; } /// /// `lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows. /// /// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 ) /// [YamlMember(Alias = "lendablePercent")] [JsonProperty("lendablePercent", NullValueHandling = NullValueHandling.Ignore)] public int? LendablePercent { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LinuxContainerUserV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LinuxContainerUser represents user identity information in Linux containers /// public partial class LinuxContainerUserV1 { /// /// GID is the primary gid initially attached to the first process in the container /// [YamlMember(Alias = "gid")] [JsonProperty("gid", NullValueHandling = NullValueHandling.Include)] public long Gid { get; set; } /// /// UID is the primary uid initially attached to the first process in the container /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Include)] public long Uid { get; set; } /// /// SupplementalGroups are the supplemental groups initially attached to the first process in the container /// [YamlMember(Alias = "supplementalGroups")] [JsonProperty("supplementalGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List SupplementalGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSupplementalGroups() => SupplementalGroups.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ListMetaV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}. /// public partial class ListMetaV1 { /// /// continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message. /// [YamlMember(Alias = "continue")] [JsonProperty("continue", NullValueHandling = NullValueHandling.Ignore)] public string Continue { get; set; } /// /// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system. /// [YamlMember(Alias = "selfLink")] [JsonProperty("selfLink", NullValueHandling = NullValueHandling.Ignore)] public string SelfLink { get; set; } /// /// String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency /// [YamlMember(Alias = "resourceVersion")] [JsonProperty("resourceVersion", NullValueHandling = NullValueHandling.Ignore)] public string ResourceVersion { get; set; } /// /// remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact. /// [YamlMember(Alias = "remainingItemCount")] [JsonProperty("remainingItemCount", NullValueHandling = NullValueHandling.Ignore)] public long? RemainingItemCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LoadBalancerIngressV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point. /// public partial class LoadBalancerIngressV1 { /// /// Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers) /// [YamlMember(Alias = "hostname")] [JsonProperty("hostname", NullValueHandling = NullValueHandling.Ignore)] public string Hostname { get; set; } /// /// IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to "VIP" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to "Proxy" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing. /// [YamlMember(Alias = "ipMode")] [JsonProperty("ipMode", NullValueHandling = NullValueHandling.Ignore)] public string IpMode { get; set; } /// /// IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers) /// [YamlMember(Alias = "ip")] [JsonProperty("ip", NullValueHandling = NullValueHandling.Ignore)] public string Ip { get; set; } /// /// Ports is a list of records of service ports If used, every port defined in the service should have an entry in it /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/LoadBalancerStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LoadBalancerStatus represents the status of a load-balancer. /// public partial class LoadBalancerStatusV1 { /// /// Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points. /// [YamlMember(Alias = "ingress")] [JsonProperty("ingress", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ingress { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeIngress() => Ingress.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/LocalObjectReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. /// public partial class LocalObjectReferenceV1 { /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LocalSubjectAccessReviewV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking. /// [KubeObject("LocalSubjectAccessReview", "authorization.k8s.io/v1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews")] public partial class LocalSubjectAccessReviewV1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SubjectAccessReviewSpecV1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request is allowed or not /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectAccessReviewStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LocalSubjectAccessReviewV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking. /// [KubeObject("LocalSubjectAccessReview", "authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews")] public partial class LocalSubjectAccessReviewV1Beta1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SubjectAccessReviewSpecV1Beta1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request is allowed or not /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectAccessReviewStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/LocalVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Local represents directly-attached storage with node affinity (Beta feature) /// public partial class LocalVolumeSourceV1 { /// /// fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ManagedFieldsEntryV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to. /// public partial class ManagedFieldsEntryV1 { /// /// FieldsV1 holds the first JSON version format as described in the "FieldsV1" type. /// [YamlMember(Alias = "fieldsV1")] [JsonProperty("fieldsV1", NullValueHandling = NullValueHandling.Ignore)] public FieldsV1 FieldsV1 { get; set; } /// /// FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1" /// [YamlMember(Alias = "fieldsType")] [JsonProperty("fieldsType", NullValueHandling = NullValueHandling.Ignore)] public string FieldsType { get; set; } /// /// Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource. /// [YamlMember(Alias = "subresource")] [JsonProperty("subresource", NullValueHandling = NullValueHandling.Ignore)] public string Subresource { get; set; } /// /// Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over. /// [YamlMember(Alias = "time")] [JsonProperty("time", NullValueHandling = NullValueHandling.Ignore)] public DateTime? Time { get; set; } /// /// APIVersion defines the version of this resource that this field set applies to. The format is "group/version" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted. /// [YamlMember(Alias = "apiVersion")] [JsonProperty("apiVersion", NullValueHandling = NullValueHandling.Ignore)] public string ApiVersion { get; set; } /// /// Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'. /// [YamlMember(Alias = "operation")] [JsonProperty("operation", NullValueHandling = NullValueHandling.Ignore)] public string Operation { get; set; } /// /// Manager is an identifier of the workflow managing these fields. /// [YamlMember(Alias = "manager")] [JsonProperty("manager", NullValueHandling = NullValueHandling.Ignore)] public string Manager { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MatchConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook. /// public partial class MatchConditionV1 { /// /// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') /// /// Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL 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 admission request(/pkg/apis/admission/types.go#AdmissionRequest). '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. /// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ /// /// Required. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MatchConditionV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class MatchConditionV1Alpha1 { /// /// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') /// /// Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL 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 admission request(/pkg/apis/admission/types.go#AdmissionRequest). '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. /// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ /// /// Required. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MatchConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. /// public partial class MatchConditionV1Beta1 { /// /// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') /// /// Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL 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 admission request(/pkg/apis/admission/types.go#AdmissionRequest). '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. /// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ /// /// Required. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MatchResourcesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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) /// public partial class MatchResourcesV1 { /// /// 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. /// /// For 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": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If 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": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches everything. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// 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. /// [YamlMember(Alias = "objectSelector")] [JsonProperty("objectSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 ObjectSelector { get; set; } /// /// 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) /// [YamlMember(Alias = "excludeResourceRules")] [JsonProperty("excludeResourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ExcludeResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExcludeResourceRules() => ExcludeResourceRules.Count > 0; /// /// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. /// [YamlMember(Alias = "resourceRules")] [JsonProperty("resourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0; /// /// 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" /// [YamlMember(Alias = "matchPolicy")] [JsonProperty("matchPolicy", NullValueHandling = NullValueHandling.Ignore)] public string MatchPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MatchResourcesV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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) /// public partial class MatchResourcesV1Alpha1 { /// /// 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. /// /// For 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": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If 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": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches everything. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// 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. /// [YamlMember(Alias = "objectSelector")] [JsonProperty("objectSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 ObjectSelector { get; set; } /// /// 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) /// [YamlMember(Alias = "excludeResourceRules")] [JsonProperty("excludeResourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ExcludeResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExcludeResourceRules() => ExcludeResourceRules.Count > 0; /// /// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. /// [YamlMember(Alias = "resourceRules")] [JsonProperty("resourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0; /// /// 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" /// [YamlMember(Alias = "matchPolicy")] [JsonProperty("matchPolicy", NullValueHandling = NullValueHandling.Ignore)] public string MatchPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MatchResourcesV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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) /// public partial class MatchResourcesV1Beta1 { /// /// 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. /// /// For 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": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If 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": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches everything. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// 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. /// [YamlMember(Alias = "objectSelector")] [JsonProperty("objectSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 ObjectSelector { get; set; } /// /// 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) /// [YamlMember(Alias = "excludeResourceRules")] [JsonProperty("excludeResourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ExcludeResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExcludeResourceRules() => ExcludeResourceRules.Count > 0; /// /// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. /// [YamlMember(Alias = "resourceRules")] [JsonProperty("resourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0; /// /// 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" /// [YamlMember(Alias = "matchPolicy")] [JsonProperty("matchPolicy", NullValueHandling = NullValueHandling.Ignore)] public string MatchPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MetricIdentifierV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MetricIdentifier defines the name and optionally selector for a metric /// public partial class MetricIdentifierV2 { /// /// name is the name of the given metric /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MetricSpecV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). /// public partial class MetricSpecV2 { /// /// containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. /// [YamlMember(Alias = "containerResource")] [JsonProperty("containerResource", NullValueHandling = NullValueHandling.Ignore)] public ContainerResourceMetricSourceV2 ContainerResource { get; set; } /// /// resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public ResourceMetricSourceV2 Resource { get; set; } /// /// type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). /// [YamlMember(Alias = "external")] [JsonProperty("external", NullValueHandling = NullValueHandling.Ignore)] public ExternalMetricSourceV2 External { get; set; } /// /// pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. /// [YamlMember(Alias = "pods")] [JsonProperty("pods", NullValueHandling = NullValueHandling.Ignore)] public PodsMetricSourceV2 Pods { get; set; } /// /// object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). /// [YamlMember(Alias = "object")] [JsonProperty("object", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetricSourceV2 Object { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MetricSpecV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). /// public partial class MetricSpecV2Beta1 { /// /// resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public ResourceMetricSourceV2Beta1 Resource { get; set; } /// /// type is the type of metric source. It should be one of "Object", "Pods" or "Resource", each mapping to a matching field in the object. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). /// [YamlMember(Alias = "external")] [JsonProperty("external", NullValueHandling = NullValueHandling.Ignore)] public ExternalMetricSourceV2Beta1 External { get; set; } /// /// pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. /// [YamlMember(Alias = "pods")] [JsonProperty("pods", NullValueHandling = NullValueHandling.Ignore)] public PodsMetricSourceV2Beta1 Pods { get; set; } /// /// object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). /// [YamlMember(Alias = "object")] [JsonProperty("object", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetricSourceV2Beta1 Object { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MetricStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MetricStatus describes the last-read state of a single metric. /// public partial class MetricStatusV2 { /// /// container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// [YamlMember(Alias = "containerResource")] [JsonProperty("containerResource", NullValueHandling = NullValueHandling.Ignore)] public ContainerResourceMetricStatusV2 ContainerResource { get; set; } /// /// resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public ResourceMetricStatusV2 Resource { get; set; } /// /// type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). /// [YamlMember(Alias = "external")] [JsonProperty("external", NullValueHandling = NullValueHandling.Ignore)] public ExternalMetricStatusV2 External { get; set; } /// /// pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. /// [YamlMember(Alias = "pods")] [JsonProperty("pods", NullValueHandling = NullValueHandling.Ignore)] public PodsMetricStatusV2 Pods { get; set; } /// /// object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). /// [YamlMember(Alias = "object")] [JsonProperty("object", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetricStatusV2 Object { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MetricStatusV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MetricStatus describes the last-read state of a single metric. /// public partial class MetricStatusV2Beta1 { /// /// resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public ResourceMetricStatusV2Beta1 Resource { get; set; } /// /// type is the type of metric source. It will be one of "Object", "Pods" or "Resource", each corresponds to a matching field in the object. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). /// [YamlMember(Alias = "external")] [JsonProperty("external", NullValueHandling = NullValueHandling.Ignore)] public ExternalMetricStatusV2Beta1 External { get; set; } /// /// pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. /// [YamlMember(Alias = "pods")] [JsonProperty("pods", NullValueHandling = NullValueHandling.Ignore)] public PodsMetricStatusV2Beta1 Pods { get; set; } /// /// object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). /// [YamlMember(Alias = "object")] [JsonProperty("object", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetricStatusV2Beta1 Object { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MetricTargetV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MetricTarget defines the target value, average value, or average utilization of a specific metric /// public partial class MetricTargetV2 { /// /// averageValue is the target value of the average of the metric across all relevant pods (as a quantity) /// [YamlMember(Alias = "averageValue")] [JsonProperty("averageValue", NullValueHandling = NullValueHandling.Ignore)] public string AverageValue { get; set; } /// /// type represents whether the metric type is Utilization, Value, or AverageValue /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// value is the target value of the metric (as a quantity). /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Ignore)] public string Value { get; set; } /// /// averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type /// [YamlMember(Alias = "averageUtilization")] [JsonProperty("averageUtilization", NullValueHandling = NullValueHandling.Ignore)] public int? AverageUtilization { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MetricValueStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MetricValueStatus holds the current value for a metric /// public partial class MetricValueStatusV2 { /// /// averageValue is the current value of the average of the metric across all relevant pods (as a quantity) /// [YamlMember(Alias = "averageValue")] [JsonProperty("averageValue", NullValueHandling = NullValueHandling.Ignore)] public string AverageValue { get; set; } /// /// value is the current value of the metric (as a quantity). /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Ignore)] public string Value { get; set; } /// /// currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. /// [YamlMember(Alias = "averageUtilization")] [JsonProperty("averageUtilization", NullValueHandling = NullValueHandling.Ignore)] public int? AverageUtilization { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MigrationConditionV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Describes the state of a migration at a certain point. /// public partial class MigrationConditionV1Alpha1 { /// /// The last time this condition was updated. /// [YamlMember(Alias = "lastUpdateTime")] [JsonProperty("lastUpdateTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastUpdateTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of the condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ModifyVolumeStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation /// public partial class ModifyVolumeStatusV1 { /// /// targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled /// [YamlMember(Alias = "targetVolumeAttributesClassName")] [JsonProperty("targetVolumeAttributesClassName", NullValueHandling = NullValueHandling.Ignore)] public string TargetVolumeAttributesClassName { get; set; } /// /// status is the status of the ControllerModifyVolume operation. It can be in any of following states: /// - Pending /// Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as /// the specified VolumeAttributesClass not existing. /// - InProgress /// InProgress indicates that the volume is being modified. /// - Infeasible /// Infeasible indicates that the request has been rejected as invalid by the CSI driver. To /// resolve the error, a valid VolumeAttributesClass needs to be specified. /// Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration. /// [KubeListItem("MutatingWebhookConfiguration", "admissionregistration.k8s.io/v1")] [KubeObject("MutatingWebhookConfigurationList", "admissionregistration.k8s.io/v1")] public partial class MutatingWebhookConfigurationListV1 : KubeResourceListV1 { /// /// List of MutatingWebhookConfiguration. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration. /// [KubeListItem("MutatingWebhookConfiguration", "admissionregistration.k8s.io/v1beta1")] [KubeObject("MutatingWebhookConfigurationList", "admissionregistration.k8s.io/v1beta1")] public partial class MutatingWebhookConfigurationListV1Beta1 : KubeResourceListV1 { /// /// List of MutatingWebhookConfiguration. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. /// [KubeObject("MutatingWebhookConfiguration", "admissionregistration.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}")] public partial class MutatingWebhookConfigurationV1 : KubeResourceV1 { /// /// Webhooks is a list of webhooks and the affected resources and operations. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "webhooks")] [JsonProperty("webhooks", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Webhooks { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeWebhooks() => Webhooks.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. /// [KubeObject("MutatingWebhookConfiguration", "admissionregistration.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}")] public partial class MutatingWebhookConfigurationV1Beta1 : KubeResourceV1 { /// /// Webhooks is a list of webhooks and the affected resources and operations. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "webhooks")] [JsonProperty("webhooks", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Webhooks { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeWebhooks() => Webhooks.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/MutatingWebhookV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// MutatingWebhook describes an admission webhook and the resources and operations it applies to. /// public partial class MutatingWebhookV1 { /// /// 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. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// ClientConfig defines how to communicate with the hook. Required /// [YamlMember(Alias = "clientConfig")] [JsonProperty("clientConfig", NullValueHandling = NullValueHandling.Include)] public WebhookClientConfigV1 ClientConfig { get; set; } /// /// NamespaceSelector decides whether to run the webhook 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 webhook. /// /// For 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": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If instead you want to only run the webhook on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches everything. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, 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. /// [YamlMember(Alias = "objectSelector")] [JsonProperty("objectSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 ObjectSelector { get; set; } /// /// 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. /// [YamlMember(Alias = "admissionReviewVersions")] [JsonProperty("admissionReviewVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AdmissionReviewVersions { get; } = new List(); /// /// 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 /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "matchConditions")] [JsonProperty("matchConditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchConditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchConditions() => MatchConditions.Count > 0; /// /// Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; /// /// 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. /// [YamlMember(Alias = "sideEffects")] [JsonProperty("sideEffects", NullValueHandling = NullValueHandling.Include)] public string SideEffects { get; set; } /// /// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds. /// [YamlMember(Alias = "timeoutSeconds")] [JsonProperty("timeoutSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? TimeoutSeconds { get; set; } /// /// FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail. /// [YamlMember(Alias = "failurePolicy")] [JsonProperty("failurePolicy", NullValueHandling = NullValueHandling.Ignore)] public string FailurePolicy { get; set; } /// /// 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" /// [YamlMember(Alias = "matchPolicy")] [JsonProperty("matchPolicy", NullValueHandling = NullValueHandling.Ignore)] public string MatchPolicy { get; set; } /// /// reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". /// /// Never: the webhook will not be called more than once in a single admission evaluation. /// /// IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead. /// /// Defaults to "Never". /// [YamlMember(Alias = "reinvocationPolicy")] [JsonProperty("reinvocationPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ReinvocationPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NFSVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling. /// public partial class NFSVolumeSourceV1 { /// /// path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } /// /// server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs /// [YamlMember(Alias = "server")] [JsonProperty("server", NullValueHandling = NullValueHandling.Include)] public string Server { get; set; } /// /// readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NamedRuleWithOperationsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. /// public partial class NamedRuleWithOperationsV1 { /// /// 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 "*". /// [YamlMember(Alias = "scope")] [JsonProperty("scope", NullValueHandling = NullValueHandling.Ignore)] public string Scope { get; set; } /// /// APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiVersions")] [JsonProperty("apiVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0; /// /// 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. /// [YamlMember(Alias = "operations")] [JsonProperty("operations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Operations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOperations() => Operations.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// 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. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NamedRuleWithOperationsV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. /// public partial class NamedRuleWithOperationsV1Alpha1 { /// /// 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 "*". /// [YamlMember(Alias = "scope")] [JsonProperty("scope", NullValueHandling = NullValueHandling.Ignore)] public string Scope { get; set; } /// /// APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiVersions")] [JsonProperty("apiVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0; /// /// 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. /// [YamlMember(Alias = "operations")] [JsonProperty("operations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Operations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOperations() => Operations.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// 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. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NamedRuleWithOperationsV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. /// public partial class NamedRuleWithOperationsV1Beta1 { /// /// 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 "*". /// [YamlMember(Alias = "scope")] [JsonProperty("scope", NullValueHandling = NullValueHandling.Ignore)] public string Scope { get; set; } /// /// APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiVersions")] [JsonProperty("apiVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0; /// /// 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. /// [YamlMember(Alias = "operations")] [JsonProperty("operations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Operations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOperations() => Operations.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// 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. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NamespaceConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NamespaceCondition contains details about state of namespace. /// public partial class NamespaceConditionV1 { /// /// Description not provided. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of namespace controller condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NamespaceListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NamespaceList is a list of Namespaces. /// [KubeListItem("Namespace", "v1")] [KubeObject("NamespaceList", "v1")] public partial class NamespaceListV1 : KubeResourceListV1 { /// /// Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/NamespaceSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NamespaceSpec describes the attributes on a Namespace. /// public partial class NamespaceSpecV1 { /// /// Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ /// [YamlMember(Alias = "finalizers")] [JsonProperty("finalizers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Finalizers { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeFinalizers() => Finalizers.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NamespaceStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NamespaceStatus is information about the current status of a Namespace. /// public partial class NamespaceStatusV1 { /// /// Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/ /// [YamlMember(Alias = "phase")] [JsonProperty("phase", NullValueHandling = NullValueHandling.Ignore)] public string Phase { get; set; } /// /// Represents the latest available observations of a namespace's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NamespaceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Namespace provides a scope for Names. Use of multiple namespaces is optional. /// [KubeObject("Namespace", "v1")] [KubeApi(KubeAction.List, "api/v1/namespaces")] [KubeApi(KubeAction.Create, "api/v1/namespaces")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{name}/finalize")] public partial class NamespaceV1 : KubeResourceV1 { /// /// Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public NamespaceSpecV1 Spec { get; set; } /// /// Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public NamespaceStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyEgressRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8 /// public partial class NetworkPolicyEgressRuleV1 { /// /// 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. /// [YamlMember(Alias = "to")] [JsonProperty("to", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List To { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTo() => To.Count > 0; /// /// ports is a list of destination ports for outgoing traffic. 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. /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyEgressRuleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8 /// public partial class NetworkPolicyEgressRuleV1Beta1 { /// /// 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. /// [YamlMember(Alias = "to")] [JsonProperty("to", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List To { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTo() => To.Count > 0; /// /// List of destination ports for outgoing traffic. 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. /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyIngressRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from. /// public partial class NetworkPolicyIngressRuleV1 { /// /// from is a list of sources which should be able to access the 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 sources (traffic not restricted by source). 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 from list. /// [YamlMember(Alias = "from")] [JsonProperty("from", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List From { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeFrom() => From.Count > 0; /// /// 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. /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyIngressRuleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from. /// public partial class NetworkPolicyIngressRuleV1Beta1 { /// /// List of sources which should be able to access the 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 sources (traffic not restricted by source). If this field is present and contains at least on item, this rule allows traffic only if the traffic matches at least one item in the from list. /// [YamlMember(Alias = "from")] [JsonProperty("from", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List From { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeFrom() => From.Count > 0; /// /// 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. /// [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NetworkPolicyList is a list of NetworkPolicy objects. /// [KubeListItem("NetworkPolicy", "networking.k8s.io/v1")] [KubeObject("NetworkPolicyList", "networking.k8s.io/v1")] public partial class NetworkPolicyListV1 : KubeResourceListV1 { /// /// items is a list of schema objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyPeerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed /// public partial class NetworkPolicyPeerV1 { /// /// ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be. /// [YamlMember(Alias = "ipBlock")] [JsonProperty("ipBlock", NullValueHandling = NullValueHandling.Ignore)] public IPBlockV1 IpBlock { get; set; } /// /// namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces. /// /// If podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods. /// /// If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace. /// [YamlMember(Alias = "podSelector")] [JsonProperty("podSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 PodSelector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyPeerV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer. /// public partial class NetworkPolicyPeerV1Beta1 { /// /// IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be. /// [YamlMember(Alias = "ipBlock")] [JsonProperty("ipBlock", NullValueHandling = NullValueHandling.Ignore)] public IPBlockV1Beta1 IpBlock { get; set; } /// /// Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces. /// /// If PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods. /// /// If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace. /// [YamlMember(Alias = "podSelector")] [JsonProperty("podSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 PodSelector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyPortV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NetworkPolicyPort describes a port to allow traffic on /// public partial class NetworkPolicyPortV1 { /// /// protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP. /// [YamlMember(Alias = "protocol")] [JsonProperty("protocol", NullValueHandling = NullValueHandling.Ignore)] public string Protocol { get; set; } /// /// endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port. /// [YamlMember(Alias = "endPort")] [JsonProperty("endPort", NullValueHandling = NullValueHandling.Ignore)] public int? EndPort { get; set; } /// /// port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyPortV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort. /// public partial class NetworkPolicyPortV1Beta1 { /// /// Optional. The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP. /// [YamlMember(Alias = "protocol")] [JsonProperty("protocol", NullValueHandling = NullValueHandling.Ignore)] public string Protocol { get; set; } /// /// If specified, the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicySpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NetworkPolicySpec provides the specification of a NetworkPolicy /// public partial class NetworkPolicySpecV1 { /// /// podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. /// [YamlMember(Alias = "podSelector")] [JsonProperty("podSelector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 PodSelector { get; set; } /// /// egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8 /// [YamlMember(Alias = "egress")] [JsonProperty("egress", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Egress { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEgress() => Egress.Count > 0; /// /// 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) /// [YamlMember(Alias = "ingress")] [JsonProperty("ingress", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ingress { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeIngress() => Ingress.Count > 0; /// /// policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 /// [YamlMember(Alias = "policyTypes")] [JsonProperty("policyTypes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PolicyTypes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePolicyTypes() => PolicyTypes.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicySpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec. /// public partial class NetworkPolicySpecV1Beta1 { /// /// Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. /// [YamlMember(Alias = "podSelector")] [JsonProperty("podSelector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 PodSelector { get; set; } /// /// List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8 /// [YamlMember(Alias = "egress")] [JsonProperty("egress", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Egress { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEgress() => Egress.Count > 0; /// /// 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 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). /// [YamlMember(Alias = "ingress")] [JsonProperty("ingress", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ingress { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeIngress() => Ingress.Count > 0; /// /// List of rule types that the NetworkPolicy relates to. Valid options are Ingress, Egress, or Ingress,Egress. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an Egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 /// [YamlMember(Alias = "policyTypes")] [JsonProperty("policyTypes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PolicyTypes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePolicyTypes() => PolicyTypes.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NetworkPolicyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NetworkPolicy describes what network traffic is allowed for a set of Pods /// [KubeObject("NetworkPolicy", "networking.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/networking.k8s.io/v1/networkpolicies")] [KubeApi(KubeAction.WatchList, "apis/networking.k8s.io/v1/watch/networkpolicies")] [KubeApi(KubeAction.List, "apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies")] [KubeApi(KubeAction.Create, "apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies")] [KubeApi(KubeAction.Get, "apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}")] [KubeApi(KubeAction.Delete, "apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}")] [KubeApi(KubeAction.Update, "apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}")] [KubeApi(KubeAction.WatchList, "apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies")] [KubeApi(KubeAction.DeleteCollection, "apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies")] [KubeApi(KubeAction.Watch, "apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}")] public partial class NetworkPolicyV1 : KubeResourceV1 { /// /// spec represents the specification of the desired behavior for this NetworkPolicy. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public NetworkPolicySpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeAddressV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeAddress contains information for the node's address. /// public partial class NodeAddressV1 { /// /// Node address type, one of Hostname, ExternalIP or InternalIP. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The node address. /// [YamlMember(Alias = "address")] [JsonProperty("address", NullValueHandling = NullValueHandling.Include)] public string Address { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeAffinityV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Node affinity is a group of node affinity scheduling rules. /// public partial class NodeAffinityV1 { /// /// The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. /// [YamlMember(Alias = "preferredDuringSchedulingIgnoredDuringExecution")] [JsonProperty("preferredDuringSchedulingIgnoredDuringExecution", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PreferredDuringSchedulingIgnoredDuringExecution { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePreferredDuringSchedulingIgnoredDuringExecution() => PreferredDuringSchedulingIgnoredDuringExecution.Count > 0; /// /// 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 an update), the system may or may not try to eventually evict the pod from its node. /// [YamlMember(Alias = "requiredDuringSchedulingIgnoredDuringExecution")] [JsonProperty("requiredDuringSchedulingIgnoredDuringExecution", NullValueHandling = NullValueHandling.Ignore)] public NodeSelectorV1 RequiredDuringSchedulingIgnoredDuringExecution { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeCondition contains condition information for a node. /// public partial class NodeConditionV1 { /// /// Last time we got an update on a given condition. /// [YamlMember(Alias = "lastHeartbeatTime")] [JsonProperty("lastHeartbeatTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastHeartbeatTime { get; set; } /// /// Last time the condition transit from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// Human readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of node condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// (brief) reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeConfigSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22 /// public partial class NodeConfigSourceV1 { /// /// ConfigMap is a reference to a Node's ConfigMap /// [YamlMember(Alias = "configMap")] [JsonProperty("configMap", NullValueHandling = NullValueHandling.Ignore)] public ConfigMapNodeConfigSourceV1 ConfigMap { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeConfigStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource. /// public partial class NodeConfigStatusV1 { /// /// Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned. /// [YamlMember(Alias = "assigned")] [JsonProperty("assigned", NullValueHandling = NullValueHandling.Ignore)] public NodeConfigSourceV1 Assigned { get; set; } /// /// LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future. /// [YamlMember(Alias = "lastKnownGood")] [JsonProperty("lastKnownGood", NullValueHandling = NullValueHandling.Ignore)] public NodeConfigSourceV1 LastKnownGood { get; set; } /// /// Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error. /// [YamlMember(Alias = "active")] [JsonProperty("active", NullValueHandling = NullValueHandling.Ignore)] public NodeConfigSourceV1 Active { get; set; } /// /// Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions. /// [YamlMember(Alias = "error")] [JsonProperty("error", NullValueHandling = NullValueHandling.Ignore)] public string Error { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeDaemonEndpointsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeDaemonEndpoints lists ports opened by daemons running on the Node. /// public partial class NodeDaemonEndpointsV1 { /// /// Endpoint on which Kubelet is listening. /// [YamlMember(Alias = "kubeletEndpoint")] [JsonProperty("kubeletEndpoint", NullValueHandling = NullValueHandling.Ignore)] public DaemonEndpointV1 KubeletEndpoint { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeFeaturesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers. /// public partial class NodeFeaturesV1 { /// /// SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser. /// [YamlMember(Alias = "supplementalGroupsPolicy")] [JsonProperty("supplementalGroupsPolicy", NullValueHandling = NullValueHandling.Ignore)] public bool? SupplementalGroupsPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeList is the whole list of all Nodes which have been registered with master. /// [KubeListItem("Node", "v1")] [KubeObject("NodeList", "v1")] public partial class NodeListV1 : KubeResourceListV1 { /// /// List of nodes /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/NodeRuntimeHandlerFeaturesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler. /// public partial class NodeRuntimeHandlerFeaturesV1 { /// /// RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts. /// [YamlMember(Alias = "recursiveReadOnlyMounts")] [JsonProperty("recursiveReadOnlyMounts", NullValueHandling = NullValueHandling.Ignore)] public bool? RecursiveReadOnlyMounts { get; set; } /// /// UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes. /// [YamlMember(Alias = "userNamespaces")] [JsonProperty("userNamespaces", NullValueHandling = NullValueHandling.Ignore)] public bool? UserNamespaces { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeRuntimeHandlerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeRuntimeHandler is a set of runtime handler information. /// public partial class NodeRuntimeHandlerV1 { /// /// Runtime handler name. Empty for the default runtime handler. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Supported features. /// [YamlMember(Alias = "features")] [JsonProperty("features", NullValueHandling = NullValueHandling.Ignore)] public NodeRuntimeHandlerFeaturesV1 Features { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeSelectorRequirementV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. /// public partial class NodeSelectorRequirementV1 { /// /// Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. /// [YamlMember(Alias = "operator")] [JsonProperty("operator", NullValueHandling = NullValueHandling.Include)] public string Operator { get; set; } /// /// An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. /// [YamlMember(Alias = "values")] [JsonProperty("values", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Values { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValues() => Values.Count > 0; /// /// The label key that the selector applies to. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeSelectorTermV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. /// public partial class NodeSelectorTermV1 { /// /// A list of node selector requirements by node's labels. /// [YamlMember(Alias = "matchExpressions")] [JsonProperty("matchExpressions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchExpressions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchExpressions() => MatchExpressions.Count > 0; /// /// A list of node selector requirements by node's fields. /// [YamlMember(Alias = "matchFields")] [JsonProperty("matchFields", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchFields { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchFields() => MatchFields.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NodeSelectorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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. /// public partial class NodeSelectorV1 { /// /// Required. A list of node selector terms. The terms are ORed. /// [YamlMember(Alias = "nodeSelectorTerms")] [JsonProperty("nodeSelectorTerms", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NodeSelectorTerms { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/NodeSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeSpec describes the attributes that a node is created with. /// public partial class NodeSpecV1 { /// /// Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966 /// [YamlMember(Alias = "externalID")] [JsonProperty("externalID", NullValueHandling = NullValueHandling.Ignore)] public string ExternalID { get; set; } /// /// ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID> /// [YamlMember(Alias = "providerID")] [JsonProperty("providerID", NullValueHandling = NullValueHandling.Ignore)] public string ProviderID { get; set; } /// /// PodCIDR represents the pod IP range assigned to the node. /// [YamlMember(Alias = "podCIDR")] [JsonProperty("podCIDR", NullValueHandling = NullValueHandling.Ignore)] public string PodCIDR { get; set; } /// /// Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed. /// [YamlMember(Alias = "configSource")] [JsonProperty("configSource", NullValueHandling = NullValueHandling.Ignore)] public NodeConfigSourceV1 ConfigSource { get; set; } /// /// Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration /// [YamlMember(Alias = "unschedulable")] [JsonProperty("unschedulable", NullValueHandling = NullValueHandling.Ignore)] public bool? Unschedulable { get; set; } /// /// podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6. /// [MergeStrategy] [YamlMember(Alias = "podCIDRs")] [JsonProperty("podCIDRs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PodCIDRs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePodCIDRs() => PodCIDRs.Count > 0; /// /// If specified, the node's taints. /// [YamlMember(Alias = "taints")] [JsonProperty("taints", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Taints { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTaints() => Taints.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NodeStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeStatus is information about the current status of a node. /// public partial class NodeStatusV1 { /// /// List of volumes that are attached to the node. /// [YamlMember(Alias = "volumesAttached")] [JsonProperty("volumesAttached", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumesAttached { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumesAttached() => VolumesAttached.Count > 0; /// /// Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. /// [YamlMember(Alias = "allocatable")] [JsonProperty("allocatable", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Allocatable { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllocatable() => Allocatable.Count > 0; /// /// 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. /// [YamlMember(Alias = "phase")] [JsonProperty("phase", NullValueHandling = NullValueHandling.Ignore)] public string Phase { get; set; } /// /// List of attachable volumes in use (mounted) by the node. /// [YamlMember(Alias = "volumesInUse")] [JsonProperty("volumesInUse", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumesInUse { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumesInUse() => VolumesInUse.Count > 0; /// /// Status of the config assigned to the node via the dynamic Kubelet config feature. /// [YamlMember(Alias = "config")] [JsonProperty("config", NullValueHandling = NullValueHandling.Ignore)] public NodeConfigStatusV1 Config { get; set; } /// /// Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info /// [YamlMember(Alias = "nodeInfo")] [JsonProperty("nodeInfo", NullValueHandling = NullValueHandling.Ignore)] public NodeSystemInfoV1 NodeInfo { get; set; } /// /// List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP). /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "addresses")] [JsonProperty("addresses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Addresses { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAddresses() => Addresses.Count > 0; /// /// Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// Endpoints of daemons running on the Node. /// [YamlMember(Alias = "daemonEndpoints")] [JsonProperty("daemonEndpoints", NullValueHandling = NullValueHandling.Ignore)] public NodeDaemonEndpointsV1 DaemonEndpoints { get; set; } /// /// Features describes the set of features implemented by the CRI implementation. /// [YamlMember(Alias = "features")] [JsonProperty("features", NullValueHandling = NullValueHandling.Ignore)] public NodeFeaturesV1 Features { get; set; } /// /// List of container images on this node /// [YamlMember(Alias = "images")] [JsonProperty("images", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Images { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeImages() => Images.Count > 0; /// /// The available runtime handlers. /// [YamlMember(Alias = "runtimeHandlers")] [JsonProperty("runtimeHandlers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List RuntimeHandlers { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRuntimeHandlers() => RuntimeHandlers.Count > 0; /// /// Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity /// [YamlMember(Alias = "capacity")] [JsonProperty("capacity", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Capacity { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCapacity() => Capacity.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/NodeSystemInfoV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NodeSystemInfo is a set of ids/uuids to uniquely identify the node. /// public partial class NodeSystemInfoV1 { /// /// Boot ID reported by the node. /// [YamlMember(Alias = "bootID")] [JsonProperty("bootID", NullValueHandling = NullValueHandling.Include)] public string BootID { get; set; } /// /// MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html /// [YamlMember(Alias = "machineID")] [JsonProperty("machineID", NullValueHandling = NullValueHandling.Include)] public string MachineID { get; set; } /// /// SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid /// [YamlMember(Alias = "systemUUID")] [JsonProperty("systemUUID", NullValueHandling = NullValueHandling.Include)] public string SystemUUID { get; set; } /// /// The Architecture reported by the node /// [YamlMember(Alias = "architecture")] [JsonProperty("architecture", NullValueHandling = NullValueHandling.Include)] public string Architecture { get; set; } /// /// OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). /// [YamlMember(Alias = "osImage")] [JsonProperty("osImage", NullValueHandling = NullValueHandling.Include)] public string OsImage { get; set; } /// /// The Operating System reported by the node /// [YamlMember(Alias = "operatingSystem")] [JsonProperty("operatingSystem", NullValueHandling = NullValueHandling.Include)] public string OperatingSystem { get; set; } /// /// ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2). /// [YamlMember(Alias = "containerRuntimeVersion")] [JsonProperty("containerRuntimeVersion", NullValueHandling = NullValueHandling.Include)] public string ContainerRuntimeVersion { get; set; } /// /// Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64). /// [YamlMember(Alias = "kernelVersion")] [JsonProperty("kernelVersion", NullValueHandling = NullValueHandling.Include)] public string KernelVersion { get; set; } /// /// Deprecated: KubeProxy Version reported by the node. /// [YamlMember(Alias = "kubeProxyVersion")] [JsonProperty("kubeProxyVersion", NullValueHandling = NullValueHandling.Include)] public string KubeProxyVersion { get; set; } /// /// Kubelet Version reported by the node. /// [YamlMember(Alias = "kubeletVersion")] [JsonProperty("kubeletVersion", NullValueHandling = NullValueHandling.Include)] public string KubeletVersion { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NodeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd). /// [KubeObject("Node", "v1")] [KubeApi(KubeAction.List, "api/v1/nodes")] [KubeApi(KubeAction.Create, "api/v1/nodes")] [KubeApi(KubeAction.Get, "api/v1/nodes/{name}")] [KubeApi(KubeAction.Patch, "api/v1/nodes/{name}")] [KubeApi(KubeAction.Delete, "api/v1/nodes/{name}")] [KubeApi(KubeAction.Update, "api/v1/nodes/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/nodes")] [KubeApi(KubeAction.DeleteCollection, "api/v1/nodes")] [KubeApi(KubeAction.Get, "api/v1/nodes/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/nodes/{name}")] [KubeApi(KubeAction.Patch, "api/v1/nodes/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/nodes/{name}/status")] public partial class NodeV1 : KubeResourceV1 { /// /// Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public NodeSpecV1 Spec { get; set; } /// /// Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public NodeStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NonResourceAttributesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface /// public partial class NonResourceAttributesV1 { /// /// Verb is the standard HTTP verb /// [YamlMember(Alias = "verb")] [JsonProperty("verb", NullValueHandling = NullValueHandling.Ignore)] public string Verb { get; set; } /// /// Path is the URL path of the request /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] public string Path { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NonResourceAttributesV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface /// public partial class NonResourceAttributesV1Beta1 { /// /// Verb is the standard HTTP verb /// [YamlMember(Alias = "verb")] [JsonProperty("verb", NullValueHandling = NullValueHandling.Ignore)] public string Verb { get; set; } /// /// Path is the URL path of the request /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] public string Path { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/NonResourcePolicyRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request. /// public partial class NonResourcePolicyRuleV1 { /// /// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example: /// - "/healthz" is legal /// - "/hea*" is illegal /// - "/hea" is legal but matches nothing /// - "/hea/*" also matches nothing /// - "/healthz/*" matches all per-component health checks. /// "*" matches all non-resource urls. if it is present, it must be the only entry. Required. /// [YamlMember(Alias = "nonResourceURLs")] [JsonProperty("nonResourceURLs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceURLs { get; } = new List(); /// /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs. If it is present, it must be the only entry. Required. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/NonResourcePolicyRuleV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request. /// public partial class NonResourcePolicyRuleV1Beta3 { /// /// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example: /// - "/healthz" is legal /// - "/hea*" is illegal /// - "/hea" is legal but matches nothing /// - "/hea/*" also matches nothing /// - "/healthz/*" matches all per-component health checks. /// "*" matches all non-resource urls. if it is present, it must be the only entry. Required. /// [YamlMember(Alias = "nonResourceURLs")] [JsonProperty("nonResourceURLs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceURLs { get; } = new List(); /// /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs. If it is present, it must be the only entry. Required. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/NonResourceRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NonResourceRule holds information that describes a rule for the non-resource /// public partial class NonResourceRuleV1 { /// /// 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. "*" means all. /// [YamlMember(Alias = "nonResourceURLs")] [JsonProperty("nonResourceURLs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceURLs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNonResourceURLs() => NonResourceURLs.Count > 0; /// /// Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. "*" means all. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/NonResourceRuleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// NonResourceRule holds information that describes a rule for the non-resource /// public partial class NonResourceRuleV1Beta1 { /// /// 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. "*" means all. /// [YamlMember(Alias = "nonResourceURLs")] [JsonProperty("nonResourceURLs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceURLs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNonResourceURLs() => NonResourceURLs.Count > 0; /// /// Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. "*" means all. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ObjectFieldSelectorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectFieldSelector selects an APIVersioned field of an object. /// public partial class ObjectFieldSelectorV1 { /// /// Path of the field to select in the specified API version. /// [YamlMember(Alias = "fieldPath")] [JsonProperty("fieldPath", NullValueHandling = NullValueHandling.Include)] public string FieldPath { get; set; } /// /// Version of the schema the FieldPath is written in terms of, defaults to "v1". /// [YamlMember(Alias = "apiVersion")] [JsonProperty("apiVersion", NullValueHandling = NullValueHandling.Ignore)] public string ApiVersion { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ObjectMetaV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. /// public partial class ObjectMetaV1 { /// /// UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. /// /// Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. /// /// If this field is specified and the generated name exists, the server will return a 409. /// /// Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency /// [YamlMember(Alias = "generateName")] [JsonProperty("generateName", NullValueHandling = NullValueHandling.Ignore)] public string GenerateName { get; set; } /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. /// /// Must be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system. /// [YamlMember(Alias = "selfLink")] [JsonProperty("selfLink", NullValueHandling = NullValueHandling.Ignore)] public string SelfLink { get; set; } /// /// A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. /// [YamlMember(Alias = "generation")] [JsonProperty("generation", NullValueHandling = NullValueHandling.Ignore)] public long? Generation { get; set; } /// /// An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. /// /// Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency /// [YamlMember(Alias = "resourceVersion")] [JsonProperty("resourceVersion", NullValueHandling = NullValueHandling.Ignore)] public string ResourceVersion { get; set; } /// /// CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. /// /// Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata /// [YamlMember(Alias = "creationTimestamp")] [JsonProperty("creationTimestamp", NullValueHandling = NullValueHandling.Ignore)] public DateTime? CreationTimestamp { get; set; } /// /// DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. /// /// Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata /// [YamlMember(Alias = "deletionTimestamp")] [JsonProperty("deletionTimestamp", NullValueHandling = NullValueHandling.Ignore)] public DateTime? DeletionTimestamp { get; set; } /// /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// [YamlMember(Alias = "annotations")] [JsonProperty("annotations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Annotations { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAnnotations() => Annotations.Count > 0; /// /// Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only. /// [YamlMember(Alias = "deletionGracePeriodSeconds")] [JsonProperty("deletionGracePeriodSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? DeletionGracePeriodSeconds { get; set; } /// /// Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list. /// [MergeStrategy] [YamlMember(Alias = "finalizers")] [JsonProperty("finalizers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Finalizers { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeFinalizers() => Finalizers.Count > 0; /// /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels /// [YamlMember(Alias = "labels")] [JsonProperty("labels", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Labels { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeLabels() => Labels.Count > 0; /// /// ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object. /// [YamlMember(Alias = "managedFields")] [JsonProperty("managedFields", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ManagedFields { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeManagedFields() => ManagedFields.Count > 0; /// /// List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller. /// [MergeStrategy(Key = "uid")] [YamlMember(Alias = "ownerReferences")] [JsonProperty("ownerReferences", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List OwnerReferences { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOwnerReferences() => OwnerReferences.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ObjectMetricSourceV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object). /// public partial class ObjectMetricSourceV2 { /// /// metric identifies the target metric by name and selector /// [YamlMember(Alias = "metric")] [JsonProperty("metric", NullValueHandling = NullValueHandling.Include)] public MetricIdentifierV2 Metric { get; set; } /// /// describedObject specifies the descriptions of a object,such as kind,name apiVersion /// [YamlMember(Alias = "describedObject")] [JsonProperty("describedObject", NullValueHandling = NullValueHandling.Include)] public CrossVersionObjectReferenceV2 DescribedObject { get; set; } /// /// target specifies the target value for the given metric /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public MetricTargetV2 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ObjectMetricSourceV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object). /// public partial class ObjectMetricSourceV2Beta1 { /// /// metricName is the name of the metric in question. /// [YamlMember(Alias = "metricName")] [JsonProperty("metricName", NullValueHandling = NullValueHandling.Include)] public string MetricName { get; set; } /// /// targetValue is the target value of the metric (as a quantity). /// [YamlMember(Alias = "targetValue")] [JsonProperty("targetValue", NullValueHandling = NullValueHandling.Include)] public string TargetValue { get; set; } /// /// target is the described Kubernetes object. /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public CrossVersionObjectReferenceV2Beta1 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ObjectMetricStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object). /// public partial class ObjectMetricStatusV2 { /// /// metric identifies the target metric by name and selector /// [YamlMember(Alias = "metric")] [JsonProperty("metric", NullValueHandling = NullValueHandling.Include)] public MetricIdentifierV2 Metric { get; set; } /// /// current contains the current value for the given metric /// [YamlMember(Alias = "current")] [JsonProperty("current", NullValueHandling = NullValueHandling.Include)] public MetricValueStatusV2 Current { get; set; } /// /// DescribedObject specifies the descriptions of a object,such as kind,name apiVersion /// [YamlMember(Alias = "describedObject")] [JsonProperty("describedObject", NullValueHandling = NullValueHandling.Include)] public CrossVersionObjectReferenceV2 DescribedObject { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ObjectMetricStatusV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object). /// public partial class ObjectMetricStatusV2Beta1 { /// /// currentValue is the current value of the metric (as a quantity). /// [YamlMember(Alias = "currentValue")] [JsonProperty("currentValue", NullValueHandling = NullValueHandling.Include)] public string CurrentValue { get; set; } /// /// metricName is the name of the metric in question. /// [YamlMember(Alias = "metricName")] [JsonProperty("metricName", NullValueHandling = NullValueHandling.Include)] public string MetricName { get; set; } /// /// target is the described Kubernetes object. /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public CrossVersionObjectReferenceV2Beta1 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ObjectReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ObjectReference contains enough information to let you inspect or modify the referred object. /// public partial class ObjectReferenceV1 : KubeObjectV1 { /// /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. /// [YamlMember(Alias = "fieldPath")] [JsonProperty("fieldPath", NullValueHandling = NullValueHandling.Ignore)] public string FieldPath { get; set; } /// /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency /// [YamlMember(Alias = "resourceVersion")] [JsonProperty("resourceVersion", NullValueHandling = NullValueHandling.Ignore)] public string ResourceVersion { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/OpaqueDeviceConfigurationV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor. /// public partial class OpaqueDeviceConfigurationV1Alpha3 { /// /// Driver is used to determine which kubelet plugin needs to be passed these configuration parameters. /// /// An admission policy provided by the driver developer could use this to decide whether it needs to validate them. /// /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } /// /// Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions. /// [YamlMember(Alias = "parameters")] [JsonProperty("parameters", NullValueHandling = NullValueHandling.Include)] public RawExtensionRuntime Parameters { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/OverheadV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Overhead structure represents the resource overhead associated with running a pod. /// public partial class OverheadV1 { /// /// podFixed represents the fixed resource overhead associated with running a pod. /// [YamlMember(Alias = "podFixed")] [JsonProperty("podFixed", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary PodFixed { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePodFixed() => PodFixed.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/OwnerReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field. /// public partial class OwnerReferenceV1 : KubeObjectV1 { /// /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Include)] public string Uid { get; set; } /// /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. /// [YamlMember(Alias = "blockOwnerDeletion")] [JsonProperty("blockOwnerDeletion", NullValueHandling = NullValueHandling.Ignore)] public bool? BlockOwnerDeletion { get; set; } /// /// If true, this reference points to the managing controller. /// [YamlMember(Alias = "controller")] [JsonProperty("controller", NullValueHandling = NullValueHandling.Ignore)] public bool? Controller { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ParamKindV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ParamKind is a tuple of Group Kind and Version. /// public partial class ParamKindV1 : KubeObjectV1 { } } ================================================ FILE: src/KubeClient/Models/generated/ParamKindV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ParamKind is a tuple of Group Kind and Version. /// public partial class ParamKindV1Alpha1 : KubeObjectV1 { } } ================================================ FILE: src/KubeClient/Models/generated/ParamKindV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ParamKind is a tuple of Group Kind and Version. /// public partial class ParamKindV1Beta1 : KubeObjectV1 { } } ================================================ FILE: src/KubeClient/Models/generated/ParamRefV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. /// public partial class ParamRefV1 { /// /// 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. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// 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. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// `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 /// [YamlMember(Alias = "parameterNotFoundAction")] [JsonProperty("parameterNotFoundAction", NullValueHandling = NullValueHandling.Ignore)] public string ParameterNotFoundAction { get; set; } /// /// selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind. /// /// If multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together. /// /// 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. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ParamRefV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. /// public partial class ParamRefV1Alpha1 { /// /// `name` is the name of the resource being referenced. /// /// `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// 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. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// `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` Default to `Deny` /// [YamlMember(Alias = "parameterNotFoundAction")] [JsonProperty("parameterNotFoundAction", NullValueHandling = NullValueHandling.Ignore)] public string ParameterNotFoundAction { get; set; } /// /// selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind. /// /// If multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together. /// /// 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. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ParamRefV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. /// public partial class ParamRefV1Beta1 { /// /// 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. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// 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. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// `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 /// [YamlMember(Alias = "parameterNotFoundAction")] [JsonProperty("parameterNotFoundAction", NullValueHandling = NullValueHandling.Ignore)] public string ParameterNotFoundAction { get; set; } /// /// selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind. /// /// If multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together. /// /// 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. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ParentReferenceV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ParentReference describes a reference to a parent object. /// public partial class ParentReferenceV1Beta1 { /// /// Name is the name of the object being referenced. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Namespace is the namespace of the object being referenced. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// Resource is the resource of the object being referenced. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Include)] public string Resource { get; set; } /// /// Group is the group of the object being referenced. /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PatchV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. /// public partial class PatchV1 { } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeClaimConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeClaimCondition contains details about state of pvc /// public partial class PersistentVolumeClaimConditionV1 { /// /// lastProbeTime is the time we probed the condition. /// [YamlMember(Alias = "lastProbeTime")] [JsonProperty("lastProbeTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastProbeTime { get; set; } /// /// lastTransitionTime is the time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// message is the human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// 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. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeClaimListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeClaimList is a list of PersistentVolumeClaim items. /// [KubeListItem("PersistentVolumeClaim", "v1")] [KubeObject("PersistentVolumeClaimList", "v1")] public partial class PersistentVolumeClaimListV1 : KubeResourceListV1 { /// /// items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeClaimSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes /// public partial class PersistentVolumeClaimSpecV1 { /// /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. /// [YamlMember(Alias = "dataSource")] [JsonProperty("dataSource", NullValueHandling = NullValueHandling.Ignore)] public TypedLocalObjectReferenceV1 DataSource { get; set; } /// /// storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 /// [YamlMember(Alias = "storageClassName")] [JsonProperty("storageClassName", NullValueHandling = NullValueHandling.Ignore)] public string StorageClassName { get; set; } /// /// 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/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). /// [YamlMember(Alias = "volumeAttributesClassName")] [JsonProperty("volumeAttributesClassName", NullValueHandling = NullValueHandling.Ignore)] public string VolumeAttributesClassName { get; set; } /// /// volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. /// [YamlMember(Alias = "volumeMode")] [JsonProperty("volumeMode", NullValueHandling = NullValueHandling.Ignore)] public string VolumeMode { get; set; } /// /// volumeName is the binding reference to the PersistentVolume backing this claim. /// [YamlMember(Alias = "volumeName")] [JsonProperty("volumeName", NullValueHandling = NullValueHandling.Ignore)] public string VolumeName { get; set; } /// /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef /// allows any non-core object, as well as PersistentVolumeClaim objects. /// * While dataSource ignores disallowed values (dropping them), dataSourceRef /// preserves all values, and generates an error if a disallowed value is /// specified. /// * While dataSource only allows local objects, dataSourceRef allows objects /// in any namespaces. /// (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. /// [YamlMember(Alias = "dataSourceRef")] [JsonProperty("dataSourceRef", NullValueHandling = NullValueHandling.Ignore)] public TypedObjectReferenceV1 DataSourceRef { get; set; } /// /// selector is a label query over volumes to consider for binding. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 /// [YamlMember(Alias = "accessModes")] [JsonProperty("accessModes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AccessModes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAccessModes() => AccessModes.Count > 0; /// /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources /// [YamlMember(Alias = "resources")] [JsonProperty("resources", NullValueHandling = NullValueHandling.Ignore)] public VolumeResourceRequirementsV1 Resources { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeClaimStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeClaimStatus is the current status of a persistent volume claim. /// public partial class PersistentVolumeClaimStatusV1 { /// /// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). /// [YamlMember(Alias = "currentVolumeAttributesClassName")] [JsonProperty("currentVolumeAttributesClassName", NullValueHandling = NullValueHandling.Ignore)] public string CurrentVolumeAttributesClassName { get; set; } /// /// phase represents the current phase of PersistentVolumeClaim. /// [YamlMember(Alias = "phase")] [JsonProperty("phase", NullValueHandling = NullValueHandling.Ignore)] public string Phase { get; set; } /// /// accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 /// [YamlMember(Alias = "accessModes")] [JsonProperty("accessModes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AccessModes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAccessModes() => AccessModes.Count > 0; /// /// 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. /// [YamlMember(Alias = "allocatedResourceStatuses")] [JsonProperty("allocatedResourceStatuses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary AllocatedResourceStatuses { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllocatedResourceStatuses() => AllocatedResourceStatuses.Count > 0; /// /// 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. /// [YamlMember(Alias = "allocatedResources")] [JsonProperty("allocatedResources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary AllocatedResources { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllocatedResources() => AllocatedResources.Count > 0; /// /// conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). /// [YamlMember(Alias = "modifyVolumeStatus")] [JsonProperty("modifyVolumeStatus", NullValueHandling = NullValueHandling.Ignore)] public ModifyVolumeStatusV1 ModifyVolumeStatus { get; set; } /// /// capacity represents the actual resources of the underlying volume. /// [YamlMember(Alias = "capacity")] [JsonProperty("capacity", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Capacity { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCapacity() => Capacity.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeClaimTemplateV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource. /// public partial class PersistentVolumeClaimTemplateV1 { /// /// May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. /// [YamlMember(Alias = "metadata")] [JsonProperty("metadata", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetaV1 Metadata { get; set; } /// /// The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public PersistentVolumeClaimSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeClaimV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeClaim is a user's request for and claim to a persistent volume /// [KubeObject("PersistentVolumeClaim", "v1")] [KubeApi(KubeAction.List, "api/v1/persistentvolumeclaims")] [KubeApi(KubeAction.WatchList, "api/v1/watch/persistentvolumeclaims")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/persistentvolumeclaims")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/persistentvolumeclaims")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/persistentvolumeclaims")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/persistentvolumeclaims")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status")] public partial class PersistentVolumeClaimV1 : KubeResourceV1 { /// /// spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PersistentVolumeClaimSpecV1 Spec { get; set; } /// /// status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PersistentVolumeClaimStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeClaimVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system). /// public partial class PersistentVolumeClaimVolumeSourceV1 { /// /// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims /// [YamlMember(Alias = "claimName")] [JsonProperty("claimName", NullValueHandling = NullValueHandling.Include)] public string ClaimName { get; set; } /// /// readOnly Will force the ReadOnly setting in VolumeMounts. Default false. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeList is a list of PersistentVolume items. /// [KubeListItem("PersistentVolume", "v1")] [KubeObject("PersistentVolumeList", "v1")] public partial class PersistentVolumeListV1 : KubeResourceListV1 { /// /// items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeSpec is the specification of a persistent volume. /// public partial class PersistentVolumeSpecV1 { /// /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. /// [YamlMember(Alias = "scaleIO")] [JsonProperty("scaleIO", NullValueHandling = NullValueHandling.Ignore)] public ScaleIOPersistentVolumeSourceV1 ScaleIO { get; set; } /// /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. /// [YamlMember(Alias = "fc")] [JsonProperty("fc", NullValueHandling = NullValueHandling.Ignore)] public FCVolumeSourceV1 Fc { get; set; } /// /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md /// [YamlMember(Alias = "rbd")] [JsonProperty("rbd", NullValueHandling = NullValueHandling.Ignore)] public RBDPersistentVolumeSourceV1 Rbd { get; set; } /// /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [YamlMember(Alias = "awsElasticBlockStore")] [JsonProperty("awsElasticBlockStore", NullValueHandling = NullValueHandling.Ignore)] public AWSElasticBlockStoreVolumeSourceV1 AwsElasticBlockStore { get; set; } /// /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. /// [YamlMember(Alias = "azureFile")] [JsonProperty("azureFile", NullValueHandling = NullValueHandling.Ignore)] public AzureFilePersistentVolumeSourceV1 AzureFile { get; set; } /// /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. /// [YamlMember(Alias = "flexVolume")] [JsonProperty("flexVolume", NullValueHandling = NullValueHandling.Ignore)] public FlexPersistentVolumeSourceV1 FlexVolume { get; set; } /// /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine /// [YamlMember(Alias = "portworxVolume")] [JsonProperty("portworxVolume", NullValueHandling = NullValueHandling.Ignore)] public PortworxVolumeSourceV1 PortworxVolume { get; set; } /// /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime /// [YamlMember(Alias = "quobyte")] [JsonProperty("quobyte", NullValueHandling = NullValueHandling.Ignore)] public QuobyteVolumeSourceV1 Quobyte { get; set; } /// /// storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. /// [YamlMember(Alias = "storageClassName")] [JsonProperty("storageClassName", NullValueHandling = NullValueHandling.Ignore)] public string StorageClassName { get; set; } /// /// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). /// [YamlMember(Alias = "volumeAttributesClassName")] [JsonProperty("volumeAttributesClassName", NullValueHandling = NullValueHandling.Ignore)] public string VolumeAttributesClassName { get; set; } /// /// volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. /// [YamlMember(Alias = "volumeMode")] [JsonProperty("volumeMode", NullValueHandling = NullValueHandling.Ignore)] public string VolumeMode { get; set; } /// /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine /// [YamlMember(Alias = "vsphereVolume")] [JsonProperty("vsphereVolume", NullValueHandling = NullValueHandling.Ignore)] public VsphereVirtualDiskVolumeSourceV1 VsphereVolume { get; set; } /// /// claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding /// [YamlMember(Alias = "claimRef")] [JsonProperty("claimRef", NullValueHandling = NullValueHandling.Ignore)] public ObjectReferenceV1 ClaimRef { get; set; } /// /// hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath /// [YamlMember(Alias = "hostPath")] [JsonProperty("hostPath", NullValueHandling = NullValueHandling.Ignore)] public HostPathVolumeSourceV1 HostPath { get; set; } /// /// csi represents storage that is handled by an external CSI driver (Beta feature). /// [YamlMember(Alias = "csi")] [JsonProperty("csi", NullValueHandling = NullValueHandling.Ignore)] public CSIPersistentVolumeSourceV1 Csi { get; set; } /// /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. /// [YamlMember(Alias = "iscsi")] [JsonProperty("iscsi", NullValueHandling = NullValueHandling.Ignore)] public ISCSIPersistentVolumeSourceV1 Iscsi { get; set; } /// /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. /// [YamlMember(Alias = "azureDisk")] [JsonProperty("azureDisk", NullValueHandling = NullValueHandling.Ignore)] public AzureDiskVolumeSourceV1 AzureDisk { get; set; } /// /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [YamlMember(Alias = "gcePersistentDisk")] [JsonProperty("gcePersistentDisk", NullValueHandling = NullValueHandling.Ignore)] public GCEPersistentDiskVolumeSourceV1 GcePersistentDisk { get; set; } /// /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine /// [YamlMember(Alias = "photonPersistentDisk")] [JsonProperty("photonPersistentDisk", NullValueHandling = NullValueHandling.Ignore)] public PhotonPersistentDiskVolumeSourceV1 PhotonPersistentDisk { get; set; } /// /// local represents directly-attached storage with node affinity /// [YamlMember(Alias = "local")] [JsonProperty("local", NullValueHandling = NullValueHandling.Ignore)] public LocalVolumeSourceV1 Local { get; set; } /// /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "cinder")] [JsonProperty("cinder", NullValueHandling = NullValueHandling.Ignore)] public CinderPersistentVolumeSourceV1 Cinder { get; set; } /// /// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running /// [YamlMember(Alias = "flocker")] [JsonProperty("flocker", NullValueHandling = NullValueHandling.Ignore)] public FlockerVolumeSourceV1 Flocker { get; set; } /// /// accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes /// [YamlMember(Alias = "accessModes")] [JsonProperty("accessModes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AccessModes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAccessModes() => AccessModes.Count > 0; /// /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime /// [YamlMember(Alias = "cephfs")] [JsonProperty("cephfs", NullValueHandling = NullValueHandling.Ignore)] public CephFSPersistentVolumeSourceV1 Cephfs { get; set; } /// /// glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// [YamlMember(Alias = "glusterfs")] [JsonProperty("glusterfs", NullValueHandling = NullValueHandling.Ignore)] public GlusterfsPersistentVolumeSourceV1 Glusterfs { get; set; } /// /// mountOptions is the list of mount options, e.g. ["ro", "soft"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options /// [YamlMember(Alias = "mountOptions")] [JsonProperty("mountOptions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MountOptions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMountOptions() => MountOptions.Count > 0; /// /// nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs /// [YamlMember(Alias = "nfs")] [JsonProperty("nfs", NullValueHandling = NullValueHandling.Ignore)] public NFSVolumeSourceV1 Nfs { get; set; } /// /// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md /// [YamlMember(Alias = "storageos")] [JsonProperty("storageos", NullValueHandling = NullValueHandling.Ignore)] public StorageOSPersistentVolumeSourceV1 Storageos { get; set; } /// /// capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity /// [YamlMember(Alias = "capacity")] [JsonProperty("capacity", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Capacity { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCapacity() => Capacity.Count > 0; /// /// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. /// [YamlMember(Alias = "nodeAffinity")] [JsonProperty("nodeAffinity", NullValueHandling = NullValueHandling.Ignore)] public VolumeNodeAffinityV1 NodeAffinity { get; set; } /// /// persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming /// [YamlMember(Alias = "persistentVolumeReclaimPolicy")] [JsonProperty("persistentVolumeReclaimPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PersistentVolumeReclaimPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolumeStatus is the current status of a persistent volume. /// public partial class PersistentVolumeStatusV1 { /// /// lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions. /// [YamlMember(Alias = "lastPhaseTransitionTime")] [JsonProperty("lastPhaseTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastPhaseTransitionTime { get; set; } /// /// message is a human-readable message indicating details about why the volume is in this state. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// 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 /// [YamlMember(Alias = "phase")] [JsonProperty("phase", NullValueHandling = NullValueHandling.Ignore)] public string Phase { get; set; } /// /// reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PersistentVolumeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes /// [KubeObject("PersistentVolume", "v1")] [KubeApi(KubeAction.List, "api/v1/persistentvolumes")] [KubeApi(KubeAction.Create, "api/v1/persistentvolumes")] [KubeApi(KubeAction.Get, "api/v1/persistentvolumes/{name}")] [KubeApi(KubeAction.Patch, "api/v1/persistentvolumes/{name}")] [KubeApi(KubeAction.Delete, "api/v1/persistentvolumes/{name}")] [KubeApi(KubeAction.Update, "api/v1/persistentvolumes/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/persistentvolumes")] [KubeApi(KubeAction.DeleteCollection, "api/v1/persistentvolumes")] [KubeApi(KubeAction.Get, "api/v1/persistentvolumes/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/persistentvolumes/{name}")] [KubeApi(KubeAction.Patch, "api/v1/persistentvolumes/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/persistentvolumes/{name}/status")] public partial class PersistentVolumeV1 : KubeResourceV1 { /// /// spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PersistentVolumeSpecV1 Spec { get; set; } /// /// status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PersistentVolumeStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PhotonPersistentDiskVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Photon Controller persistent disk resource. /// public partial class PhotonPersistentDiskVolumeSourceV1 { /// /// pdID is the ID that identifies Photon Controller persistent disk /// [YamlMember(Alias = "pdID")] [JsonProperty("pdID", NullValueHandling = NullValueHandling.Include)] public string PdID { get; set; } /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodAffinityTermV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, 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 a pod of the set of pods is running /// public partial class PodAffinityTermV1 { /// /// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. /// [YamlMember(Alias = "labelSelector")] [JsonProperty("labelSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 LabelSelector { get; set; } /// /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// 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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). /// [YamlMember(Alias = "matchLabelKeys")] [JsonProperty("matchLabelKeys", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchLabelKeys { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchLabelKeys() => MatchLabelKeys.Count > 0; /// /// 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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). /// [YamlMember(Alias = "mismatchLabelKeys")] [JsonProperty("mismatchLabelKeys", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MismatchLabelKeys { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMismatchLabelKeys() => MismatchLabelKeys.Count > 0; /// /// 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". /// [YamlMember(Alias = "namespaces")] [JsonProperty("namespaces", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Namespaces { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNamespaces() => Namespaces.Count > 0; /// /// 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. /// [YamlMember(Alias = "topologyKey")] [JsonProperty("topologyKey", NullValueHandling = NullValueHandling.Include)] public string TopologyKey { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodAffinityV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Pod affinity is a group of inter pod affinity scheduling rules. /// public partial class PodAffinityV1 { /// /// The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. /// [YamlMember(Alias = "preferredDuringSchedulingIgnoredDuringExecution")] [JsonProperty("preferredDuringSchedulingIgnoredDuringExecution", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PreferredDuringSchedulingIgnoredDuringExecution { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePreferredDuringSchedulingIgnoredDuringExecution() => PreferredDuringSchedulingIgnoredDuringExecution.Count > 0; /// /// 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. /// [YamlMember(Alias = "requiredDuringSchedulingIgnoredDuringExecution")] [JsonProperty("requiredDuringSchedulingIgnoredDuringExecution", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List RequiredDuringSchedulingIgnoredDuringExecution { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequiredDuringSchedulingIgnoredDuringExecution() => RequiredDuringSchedulingIgnoredDuringExecution.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodAntiAffinityV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Pod anti affinity is a group of inter pod anti affinity scheduling rules. /// public partial class PodAntiAffinityV1 { /// /// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. /// [YamlMember(Alias = "preferredDuringSchedulingIgnoredDuringExecution")] [JsonProperty("preferredDuringSchedulingIgnoredDuringExecution", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PreferredDuringSchedulingIgnoredDuringExecution { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePreferredDuringSchedulingIgnoredDuringExecution() => PreferredDuringSchedulingIgnoredDuringExecution.Count > 0; /// /// 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. /// [YamlMember(Alias = "requiredDuringSchedulingIgnoredDuringExecution")] [JsonProperty("requiredDuringSchedulingIgnoredDuringExecution", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List RequiredDuringSchedulingIgnoredDuringExecution { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequiredDuringSchedulingIgnoredDuringExecution() => RequiredDuringSchedulingIgnoredDuringExecution.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodCondition contains details for the current condition of this pod. /// public partial class PodConditionV1 { /// /// Last time we probed the condition. /// [YamlMember(Alias = "lastProbeTime")] [JsonProperty("lastProbeTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastProbeTime { get; set; } /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// Human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodDNSConfigOptionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDNSConfigOption defines DNS resolver options of a pod. /// public partial class PodDNSConfigOptionV1 { /// /// Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Description not provided. /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Ignore)] public string Value { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodDNSConfigV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. /// public partial class PodDNSConfigV1 { /// /// A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed. /// [YamlMember(Alias = "nameservers")] [JsonProperty("nameservers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Nameservers { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNameservers() => Nameservers.Count > 0; /// /// 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. /// [YamlMember(Alias = "options")] [JsonProperty("options", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Options { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOptions() => Options.Count > 0; /// /// 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. /// [YamlMember(Alias = "searches")] [JsonProperty("searches", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Searches { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSearches() => Searches.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudgetList is a collection of PodDisruptionBudgets. /// [KubeListItem("PodDisruptionBudget", "policy/v1")] [KubeObject("PodDisruptionBudgetList", "policy/v1")] public partial class PodDisruptionBudgetListV1 : KubeResourceListV1 { /// /// Items is a list of PodDisruptionBudgets /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudgetList is a collection of PodDisruptionBudgets. /// [KubeListItem("PodDisruptionBudget", "policy/v1beta1")] [KubeObject("PodDisruptionBudgetList", "policy/v1beta1")] public partial class PodDisruptionBudgetListV1Beta1 : KubeResourceListV1 { /// /// Description not provided. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. /// public partial class PodDisruptionBudgetSpecV1 { /// /// An eviction is allowed if at most "maxUnavailable" pods selected by "selector" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with "minAvailable". /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } /// /// An eviction is allowed if at least "minAvailable" pods selected by "selector" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying "100%". /// [YamlMember(Alias = "minAvailable")] [JsonProperty("minAvailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MinAvailable { get; set; } /// /// Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type="Ready",status="True". /// /// Valid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy. /// /// IfHealthyBudget policy means that running pods (status.phase="Running"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction. /// /// AlwaysAllow policy means that all running pods (status.phase="Running"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction. /// /// Additional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field. /// /// This field is beta-level. The eviction API uses this field when the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default). /// [YamlMember(Alias = "unhealthyPodEvictionPolicy")] [JsonProperty("unhealthyPodEvictionPolicy", NullValueHandling = NullValueHandling.Ignore)] public string UnhealthyPodEvictionPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. /// public partial class PodDisruptionBudgetSpecV1Beta1 { /// /// An eviction is allowed if at most "maxUnavailable" pods selected by "selector" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with "minAvailable". /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } /// /// An eviction is allowed if at least "minAvailable" pods selected by "selector" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying "100%". /// [YamlMember(Alias = "minAvailable")] [JsonProperty("minAvailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MinAvailable { get; set; } /// /// Label query over pods whose evictions are managed by the disruption budget. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system. /// public partial class PodDisruptionBudgetStatusV1 { /// /// Number of pod disruptions that are currently allowed. /// [YamlMember(Alias = "disruptionsAllowed")] [JsonProperty("disruptionsAllowed", NullValueHandling = NullValueHandling.Include)] public int DisruptionsAllowed { get; set; } /// /// Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute /// the number of allowed disruptions. Therefore no disruptions are /// allowed and the status of the condition will be False. /// - InsufficientPods: The number of pods are either at or below the number /// required by the PodDisruptionBudget. No disruptions are /// allowed and the status of the condition will be False. /// - SufficientPods: There are more pods than required by the PodDisruptionBudget. /// The condition will be True, and the number of allowed /// disruptions are provided by the disruptionsAllowed property. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions. /// [YamlMember(Alias = "disruptedPods")] [JsonProperty("disruptedPods", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary DisruptedPods { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDisruptedPods() => DisruptedPods.Count > 0; /// /// total number of pods counted by this disruption budget /// [YamlMember(Alias = "expectedPods")] [JsonProperty("expectedPods", NullValueHandling = NullValueHandling.Include)] public int ExpectedPods { get; set; } /// /// current number of healthy pods /// [YamlMember(Alias = "currentHealthy")] [JsonProperty("currentHealthy", NullValueHandling = NullValueHandling.Include)] public int CurrentHealthy { get; set; } /// /// minimum desired number of healthy pods /// [YamlMember(Alias = "desiredHealthy")] [JsonProperty("desiredHealthy", NullValueHandling = NullValueHandling.Include)] public int DesiredHealthy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system. /// public partial class PodDisruptionBudgetStatusV1Beta1 { /// /// Number of pod disruptions that are currently allowed. /// [YamlMember(Alias = "disruptionsAllowed")] [JsonProperty("disruptionsAllowed", NullValueHandling = NullValueHandling.Include)] public int DisruptionsAllowed { get; set; } /// /// Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status informatio is valid only if observedGeneration equals to PDB's object generation. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions. /// [YamlMember(Alias = "disruptedPods")] [JsonProperty("disruptedPods", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary DisruptedPods { get; } = new Dictionary(); /// /// total number of pods counted by this disruption budget /// [YamlMember(Alias = "expectedPods")] [JsonProperty("expectedPods", NullValueHandling = NullValueHandling.Include)] public int ExpectedPods { get; set; } /// /// current number of healthy pods /// [YamlMember(Alias = "currentHealthy")] [JsonProperty("currentHealthy", NullValueHandling = NullValueHandling.Include)] public int CurrentHealthy { get; set; } /// /// minimum desired number of healthy pods /// [YamlMember(Alias = "desiredHealthy")] [JsonProperty("desiredHealthy", NullValueHandling = NullValueHandling.Include)] public int DesiredHealthy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods /// [KubeObject("PodDisruptionBudget", "policy/v1")] [KubeApi(KubeAction.List, "apis/policy/v1/poddisruptionbudgets")] [KubeApi(KubeAction.WatchList, "apis/policy/v1/watch/poddisruptionbudgets")] [KubeApi(KubeAction.List, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.Create, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.Get, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Patch, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Delete, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Update, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.WatchList, "apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.DeleteCollection, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.Get, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Patch, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status")] [KubeApi(KubeAction.Update, "apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status")] public partial class PodDisruptionBudgetV1 : KubeResourceV1 { /// /// Specification of the desired behavior of the PodDisruptionBudget. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PodDisruptionBudgetSpecV1 Spec { get; set; } /// /// Most recently observed status of the PodDisruptionBudget. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PodDisruptionBudgetStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodDisruptionBudgetV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods /// [KubeObject("PodDisruptionBudget", "policy/v1beta1")] [KubeApi(KubeAction.List, "apis/policy/v1beta1/poddisruptionbudgets")] [KubeApi(KubeAction.WatchList, "apis/policy/v1beta1/watch/poddisruptionbudgets")] [KubeApi(KubeAction.List, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.Create, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.Get, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Patch, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Delete, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Update, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.WatchList, "apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.DeleteCollection, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets")] [KubeApi(KubeAction.Get, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}")] [KubeApi(KubeAction.Patch, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status")] [KubeApi(KubeAction.Update, "apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status")] public partial class PodDisruptionBudgetV1Beta1 : KubeResourceV1 { /// /// Specification of the desired behavior of the PodDisruptionBudget. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PodDisruptionBudgetSpecV1Beta1 Spec { get; set; } /// /// Most recently observed status of the PodDisruptionBudget. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PodDisruptionBudgetStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodFailurePolicyOnExitCodesRequirementV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check. /// public partial class PodFailurePolicyOnExitCodesRequirementV1 { /// /// Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template. /// [YamlMember(Alias = "containerName")] [JsonProperty("containerName", NullValueHandling = NullValueHandling.Ignore)] public string ContainerName { get; set; } /// /// Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: /// /// - In: the requirement is satisfied if at least one container exit code /// (might be multiple if there are multiple containers not restricted /// by the 'containerName' field) is in the set of specified values. /// - NotIn: the requirement is satisfied if at least one container exit code /// (might be multiple if there are multiple containers not restricted /// by the 'containerName' field) is not in the set of specified values. /// Additional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied. /// [YamlMember(Alias = "operator")] [JsonProperty("operator", NullValueHandling = NullValueHandling.Include)] public string Operator { get; set; } /// /// Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed. /// [YamlMember(Alias = "values")] [JsonProperty("values", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Values { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodFailurePolicyOnPodConditionsPatternV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type. /// public partial class PodFailurePolicyOnPodConditionsPatternV1 { /// /// Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodFailurePolicyRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule. /// public partial class PodFailurePolicyRuleV1 { /// /// Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: /// /// - FailJob: indicates that the pod's job is marked as Failed and all /// running pods are terminated. /// - FailIndex: indicates that the pod's index is marked as Failed and will /// not be restarted. /// This value is beta-level. It can be used when the /// `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). /// - Ignore: indicates that the counter towards the .backoffLimit is not /// incremented and a replacement pod is created. /// - Count: indicates that the pod is handled in the default way - the /// counter towards the .backoffLimit is incremented. /// Additional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule. /// [YamlMember(Alias = "action")] [JsonProperty("action", NullValueHandling = NullValueHandling.Include)] public string Action { get; set; } /// /// Represents the requirement on the container exit codes. /// [YamlMember(Alias = "onExitCodes")] [JsonProperty("onExitCodes", NullValueHandling = NullValueHandling.Ignore)] public PodFailurePolicyOnExitCodesRequirementV1 OnExitCodes { get; set; } /// /// Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed. /// [YamlMember(Alias = "onPodConditions")] [JsonProperty("onPodConditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List OnPodConditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOnPodConditions() => OnPodConditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodFailurePolicyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodFailurePolicy describes how failed pods influence the backoffLimit. /// public partial class PodFailurePolicyV1 { /// /// A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodIPV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodIP represents a single IP address allocated to the pod. /// public partial class PodIPV1 { /// /// IP is the IP address assigned to the pod /// [YamlMember(Alias = "ip")] [JsonProperty("ip", NullValueHandling = NullValueHandling.Include)] public string Ip { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodList is a list of Pods. /// [KubeListItem("Pod", "v1")] [KubeObject("PodList", "v1")] public partial class PodListV1 : KubeResourceListV1 { /// /// List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodOSV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodOS defines the OS parameters of a pod. /// public partial class PodOSV1 { /// /// Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodPresetListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodPresetList is a list of PodPreset objects. /// [KubeListItem("PodPreset", "settings.k8s.io/v1alpha1")] [KubeObject("PodPresetList", "settings.k8s.io/v1alpha1")] public partial class PodPresetListV1Alpha1 : KubeResourceListV1 { /// /// Items is a list of schema objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodPresetSpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodPresetSpec is a description of a pod preset. /// public partial class PodPresetSpecV1Alpha1 { /// /// EnvFrom defines the collection of EnvFromSource to inject into containers. /// [YamlMember(Alias = "envFrom")] [JsonProperty("envFrom", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List EnvFrom { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnvFrom() => EnvFrom.Count > 0; /// /// Selector is a label query over a set of resources, in this case pods. Required. /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// VolumeMounts defines the collection of VolumeMount to inject into containers. /// [YamlMember(Alias = "volumeMounts")] [JsonProperty("volumeMounts", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeMounts { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeMounts() => VolumeMounts.Count > 0; /// /// Volumes defines the collection of Volume to inject into the pod. /// [YamlMember(Alias = "volumes")] [JsonProperty("volumes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Volumes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumes() => Volumes.Count > 0; /// /// Env defines the collection of EnvVar to inject into containers. /// [YamlMember(Alias = "env")] [JsonProperty("env", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Env { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEnv() => Env.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodPresetV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodPreset is a policy resource that defines additional runtime requirements for a Pod. /// [KubeObject("PodPreset", "settings.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/settings.k8s.io/v1alpha1/podpresets")] [KubeApi(KubeAction.WatchList, "apis/settings.k8s.io/v1alpha1/watch/podpresets")] [KubeApi(KubeAction.List, "apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets")] [KubeApi(KubeAction.Create, "apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets")] [KubeApi(KubeAction.Get, "apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}")] [KubeApi(KubeAction.Patch, "apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}")] [KubeApi(KubeAction.Delete, "apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}")] [KubeApi(KubeAction.Update, "apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}")] [KubeApi(KubeAction.WatchList, "apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets")] [KubeApi(KubeAction.DeleteCollection, "apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets")] [KubeApi(KubeAction.Watch, "apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets/{name}")] public partial class PodPresetV1Alpha1 : KubeResourceV1 { /// /// Description not provided. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PodPresetSpecV1Alpha1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodReadinessGateV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodReadinessGate contains the reference to a pod condition /// public partial class PodReadinessGateV1 { /// /// ConditionType refers to a condition in the pod's condition list with matching type. /// [YamlMember(Alias = "conditionType")] [JsonProperty("conditionType", NullValueHandling = NullValueHandling.Include)] public string ConditionType { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodResourceClaimStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim. /// public partial class PodResourceClaimStatusV1 { /// /// Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case. /// [YamlMember(Alias = "resourceClaimName")] [JsonProperty("resourceClaimName", NullValueHandling = NullValueHandling.Ignore)] public string ResourceClaimName { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodResourceClaimV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod. /// /// It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name. /// public partial class PodResourceClaimV1 { /// /// Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod. /// /// Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set. /// [YamlMember(Alias = "resourceClaimName")] [JsonProperty("resourceClaimName", NullValueHandling = NullValueHandling.Ignore)] public string ResourceClaimName { get; set; } /// /// ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod. /// /// The template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. /// /// This field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim. /// /// Exactly one of ResourceClaimName and ResourceClaimTemplateName must be set. /// [YamlMember(Alias = "resourceClaimTemplateName")] [JsonProperty("resourceClaimTemplateName", NullValueHandling = NullValueHandling.Ignore)] public string ResourceClaimTemplateName { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodSchedulingContextListV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSchedulingContextList is a collection of Pod scheduling objects. /// [KubeListItem("PodSchedulingContext", "resource.k8s.io/v1alpha3")] [KubeObject("PodSchedulingContextList", "resource.k8s.io/v1alpha3")] public partial class PodSchedulingContextListV1Alpha3 : KubeResourceListV1 { /// /// Items is the list of PodSchedulingContext objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodSchedulingContextSpecV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSchedulingContextSpec describes where resources for the Pod are needed. /// public partial class PodSchedulingContextSpecV1Alpha3 { /// /// SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use "WaitForFirstConsumer" allocation is to be attempted. /// [YamlMember(Alias = "selectedNode")] [JsonProperty("selectedNode", NullValueHandling = NullValueHandling.Ignore)] public string SelectedNode { get; set; } /// /// PotentialNodes lists nodes where the Pod might be able to run. /// /// The size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced. /// [YamlMember(Alias = "potentialNodes")] [JsonProperty("potentialNodes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PotentialNodes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePotentialNodes() => PotentialNodes.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodSchedulingContextStatusV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSchedulingContextStatus describes where resources for the Pod can be allocated. /// public partial class PodSchedulingContextStatusV1Alpha3 { /// /// ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses "WaitForFirstConsumer" allocation mode. /// [YamlMember(Alias = "resourceClaims")] [JsonProperty("resourceClaims", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceClaims { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceClaims() => ResourceClaims.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodSchedulingContextV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use "WaitForFirstConsumer" allocation mode. /// /// This is an alpha type and requires enabling the DRAControlPlaneController feature gate. /// [KubeObject("PodSchedulingContext", "resource.k8s.io/v1alpha3")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/podschedulingcontexts")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/podschedulingcontexts")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts")] [KubeApi(KubeAction.Create, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts")] [KubeApi(KubeAction.Get, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}")] [KubeApi(KubeAction.Patch, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}")] [KubeApi(KubeAction.Delete, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}")] [KubeApi(KubeAction.Update, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/namespaces/{namespace}/podschedulingcontexts")] [KubeApi(KubeAction.DeleteCollection, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts")] [KubeApi(KubeAction.Get, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}/status")] [KubeApi(KubeAction.Watch, "apis/resource.k8s.io/v1alpha3/watch/namespaces/{namespace}/podschedulingcontexts/{name}")] [KubeApi(KubeAction.Patch, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}/status")] [KubeApi(KubeAction.Update, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}/status")] public partial class PodSchedulingContextV1Alpha3 : KubeResourceV1 { /// /// Spec describes where resources for the Pod are needed. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public PodSchedulingContextSpecV1Alpha3 Spec { get; set; } /// /// Status describes where resources for the Pod can be allocated. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PodSchedulingContextStatusV1Alpha3 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodSchedulingGateV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSchedulingGate is associated to a Pod to guard its scheduling. /// public partial class PodSchedulingGateV1 { /// /// Name of the scheduling gate. Each scheduling gate must have a unique name field. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodSecurityContextV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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. /// public partial class PodSecurityContextV1 { /// /// 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. /// [YamlMember(Alias = "appArmorProfile")] [JsonProperty("appArmorProfile", NullValueHandling = NullValueHandling.Ignore)] public AppArmorProfileV1 AppArmorProfile { get; set; } /// /// The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "seccompProfile")] [JsonProperty("seccompProfile", NullValueHandling = NullValueHandling.Ignore)] public SeccompProfileV1 SeccompProfile { get; set; } /// /// 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. /// [YamlMember(Alias = "fsGroup")] [JsonProperty("fsGroup", NullValueHandling = NullValueHandling.Ignore)] public long? FsGroup { get; set; } /// /// 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. /// [YamlMember(Alias = "runAsGroup")] [JsonProperty("runAsGroup", NullValueHandling = NullValueHandling.Ignore)] public long? RunAsGroup { get; set; } /// /// The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. 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. /// [YamlMember(Alias = "runAsUser")] [JsonProperty("runAsUser", NullValueHandling = NullValueHandling.Ignore)] public long? RunAsUser { get; set; } /// /// The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. 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. /// [YamlMember(Alias = "seLinuxOptions")] [JsonProperty("seLinuxOptions", NullValueHandling = NullValueHandling.Ignore)] public SELinuxOptionsV1 SeLinuxOptions { get; set; } /// /// A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "supplementalGroups")] [JsonProperty("supplementalGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List SupplementalGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSupplementalGroups() => SupplementalGroups.Count > 0; /// /// 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. /// [YamlMember(Alias = "sysctls")] [JsonProperty("sysctls", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Sysctls { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSysctls() => Sysctls.Count > 0; /// /// The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. /// [YamlMember(Alias = "windowsOptions")] [JsonProperty("windowsOptions", NullValueHandling = NullValueHandling.Ignore)] public WindowsSecurityContextOptionsV1 WindowsOptions { get; set; } /// /// Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. /// [YamlMember(Alias = "runAsNonRoot")] [JsonProperty("runAsNonRoot", NullValueHandling = NullValueHandling.Ignore)] public bool? RunAsNonRoot { get; set; } /// /// 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. /// [YamlMember(Alias = "fsGroupChangePolicy")] [JsonProperty("fsGroupChangePolicy", NullValueHandling = NullValueHandling.Ignore)] public string FsGroupChangePolicy { get; set; } /// /// Defines how supplemental groups of the first container processes are calculated. Valid values are "Merge" and "Strict". If not specified, "Merge" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "supplementalGroupsPolicy")] [JsonProperty("supplementalGroupsPolicy", NullValueHandling = NullValueHandling.Ignore)] public string SupplementalGroupsPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodSecurityPolicyListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSecurityPolicyList is a list of PodSecurityPolicy objects. /// [KubeListItem("PodSecurityPolicy", "policy/v1beta1")] [KubeObject("PodSecurityPolicyList", "policy/v1beta1")] public partial class PodSecurityPolicyListV1Beta1 : KubeResourceListV1 { /// /// items is a list of schema objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodSecurityPolicySpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead. /// public partial class PodSecurityPolicySpecV1Beta1 { /// /// hostIPC determines if the policy allows the use of HostIPC in the pod spec. /// [YamlMember(Alias = "hostIPC")] [JsonProperty("hostIPC", NullValueHandling = NullValueHandling.Ignore)] public bool? HostIPC { get; set; } /// /// hostPID determines if the policy allows the use of HostPID in the pod spec. /// [YamlMember(Alias = "hostPID")] [JsonProperty("hostPID", NullValueHandling = NullValueHandling.Ignore)] public bool? HostPID { get; set; } /// /// privileged determines if a pod can request to be run as privileged. /// [YamlMember(Alias = "privileged")] [JsonProperty("privileged", NullValueHandling = NullValueHandling.Ignore)] public bool? Privileged { get; set; } /// /// hostNetwork determines if the policy allows the use of HostNetwork in the pod spec. /// [YamlMember(Alias = "hostNetwork")] [JsonProperty("hostNetwork", NullValueHandling = NullValueHandling.Ignore)] public bool? HostNetwork { get; set; } /// /// readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to. /// [YamlMember(Alias = "readOnlyRootFilesystem")] [JsonProperty("readOnlyRootFilesystem", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnlyRootFilesystem { get; set; } /// /// allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true. /// [YamlMember(Alias = "allowPrivilegeEscalation")] [JsonProperty("allowPrivilegeEscalation", NullValueHandling = NullValueHandling.Ignore)] public bool? AllowPrivilegeEscalation { get; set; } /// /// defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process. /// [YamlMember(Alias = "defaultAllowPrivilegeEscalation")] [JsonProperty("defaultAllowPrivilegeEscalation", NullValueHandling = NullValueHandling.Ignore)] public bool? DefaultAllowPrivilegeEscalation { get; set; } /// /// fsGroup is the strategy that will dictate what fs group is used by the SecurityContext. /// [YamlMember(Alias = "fsGroup")] [JsonProperty("fsGroup", NullValueHandling = NullValueHandling.Include)] public FSGroupStrategyOptionsV1Beta1 FsGroup { get; set; } /// /// runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. /// [YamlMember(Alias = "runAsUser")] [JsonProperty("runAsUser", NullValueHandling = NullValueHandling.Include)] public RunAsUserStrategyOptionsV1Beta1 RunAsUser { get; set; } /// /// allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities. /// [YamlMember(Alias = "allowedCapabilities")] [JsonProperty("allowedCapabilities", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllowedCapabilities { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllowedCapabilities() => AllowedCapabilities.Count > 0; /// /// allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the "volumes" field. /// [YamlMember(Alias = "allowedFlexVolumes")] [JsonProperty("allowedFlexVolumes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllowedFlexVolumes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllowedFlexVolumes() => AllowedFlexVolumes.Count > 0; /// /// allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used. /// [YamlMember(Alias = "allowedHostPaths")] [JsonProperty("allowedHostPaths", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllowedHostPaths { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllowedHostPaths() => AllowedHostPaths.Count > 0; /// /// allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. /// /// Examples: e.g. "foo/*" allows "foo/bar", "foo/baz", etc. e.g. "foo.*" allows "foo.bar", "foo.baz", etc. /// [YamlMember(Alias = "allowedUnsafeSysctls")] [JsonProperty("allowedUnsafeSysctls", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllowedUnsafeSysctls { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllowedUnsafeSysctls() => AllowedUnsafeSysctls.Count > 0; /// /// defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list. /// [YamlMember(Alias = "defaultAddCapabilities")] [JsonProperty("defaultAddCapabilities", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List DefaultAddCapabilities { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDefaultAddCapabilities() => DefaultAddCapabilities.Count > 0; /// /// forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. /// /// Examples: e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. e.g. "foo.*" forbids "foo.bar", "foo.baz", etc. /// [YamlMember(Alias = "forbiddenSysctls")] [JsonProperty("forbiddenSysctls", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ForbiddenSysctls { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeForbiddenSysctls() => ForbiddenSysctls.Count > 0; /// /// hostPorts determines which host port ranges are allowed to be exposed. /// [YamlMember(Alias = "hostPorts")] [JsonProperty("hostPorts", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List HostPorts { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHostPorts() => HostPorts.Count > 0; /// /// requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added. /// [YamlMember(Alias = "requiredDropCapabilities")] [JsonProperty("requiredDropCapabilities", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List RequiredDropCapabilities { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequiredDropCapabilities() => RequiredDropCapabilities.Count > 0; /// /// supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. /// [YamlMember(Alias = "supplementalGroups")] [JsonProperty("supplementalGroups", NullValueHandling = NullValueHandling.Include)] public SupplementalGroupsStrategyOptionsV1Beta1 SupplementalGroups { get; set; } /// /// volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'. /// [YamlMember(Alias = "volumes")] [JsonProperty("volumes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Volumes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumes() => Volumes.Count > 0; /// /// seLinux is the strategy that will dictate the allowable labels that may be set. /// [YamlMember(Alias = "seLinux")] [JsonProperty("seLinux", NullValueHandling = NullValueHandling.Include)] public SELinuxStrategyOptionsV1Beta1 SeLinux { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodSecurityPolicyV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. /// [KubeObject("PodSecurityPolicy", "policy/v1beta1")] [KubeApi(KubeAction.List, "apis/policy/v1beta1/podsecuritypolicies")] [KubeApi(KubeAction.Create, "apis/policy/v1beta1/podsecuritypolicies")] [KubeApi(KubeAction.Get, "apis/policy/v1beta1/podsecuritypolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/policy/v1beta1/podsecuritypolicies/{name}")] [KubeApi(KubeAction.Delete, "apis/policy/v1beta1/podsecuritypolicies/{name}")] [KubeApi(KubeAction.Update, "apis/policy/v1beta1/podsecuritypolicies/{name}")] [KubeApi(KubeAction.WatchList, "apis/policy/v1beta1/watch/podsecuritypolicies")] [KubeApi(KubeAction.DeleteCollection, "apis/policy/v1beta1/podsecuritypolicies")] [KubeApi(KubeAction.Watch, "apis/policy/v1beta1/watch/podsecuritypolicies/{name}")] public partial class PodSecurityPolicyV1Beta1 : KubeResourceV1 { /// /// spec defines the policy enforced. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PodSecurityPolicySpecV1Beta1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodSpec is a description of a pod. /// public partial class PodSpecV1 { /// /// Use the host's ipc namespace. Optional: Default to false. /// [YamlMember(Alias = "hostIPC")] [JsonProperty("hostIPC", NullValueHandling = NullValueHandling.Ignore)] public bool? HostIPC { get; set; } /// /// Use the host's pid namespace. Optional: Default to false. /// [YamlMember(Alias = "hostPID")] [JsonProperty("hostPID", NullValueHandling = NullValueHandling.Ignore)] public bool? HostPID { get; set; } /// /// 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. /// [YamlMember(Alias = "setHostnameAsFQDN")] [JsonProperty("setHostnameAsFQDN", NullValueHandling = NullValueHandling.Ignore)] public bool? SetHostnameAsFQDN { get; set; } /// /// Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md /// [YamlMember(Alias = "overhead")] [JsonProperty("overhead", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Overhead { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOverhead() => Overhead.Count > 0; /// /// Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. /// [YamlMember(Alias = "hostname")] [JsonProperty("hostname", NullValueHandling = NullValueHandling.Ignore)] public string Hostname { get; set; } /// /// NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename /// [YamlMember(Alias = "nodeName")] [JsonProperty("nodeName", NullValueHandling = NullValueHandling.Ignore)] public string NodeName { get; set; } /// /// If specified, indicates the pod's priority. "system-node-critical" and "system-cluster-critical" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. /// [YamlMember(Alias = "priorityClassName")] [JsonProperty("priorityClassName", NullValueHandling = NullValueHandling.Ignore)] public string PriorityClassName { get; set; } /// /// 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 /// [YamlMember(Alias = "runtimeClassName")] [JsonProperty("runtimeClassName", NullValueHandling = NullValueHandling.Ignore)] public string RuntimeClassName { get; set; } /// /// If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. /// [YamlMember(Alias = "schedulerName")] [JsonProperty("schedulerName", NullValueHandling = NullValueHandling.Ignore)] public string SchedulerName { get; set; } /// /// 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/ /// [YamlMember(Alias = "serviceAccountName")] [JsonProperty("serviceAccountName", NullValueHandling = NullValueHandling.Ignore)] public string ServiceAccountName { get; set; } /// /// 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. /// [YamlMember(Alias = "shareProcessNamespace")] [JsonProperty("shareProcessNamespace", NullValueHandling = NullValueHandling.Ignore)] public bool? ShareProcessNamespace { get; set; } /// /// Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy. /// [YamlMember(Alias = "dnsConfig")] [JsonProperty("dnsConfig", NullValueHandling = NullValueHandling.Ignore)] public PodDNSConfigV1 DnsConfig { get; set; } /// /// 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. /// [YamlMember(Alias = "hostNetwork")] [JsonProperty("hostNetwork", NullValueHandling = NullValueHandling.Ignore)] public bool? HostNetwork { get; set; } /// /// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted. /// [YamlMember(Alias = "automountServiceAccountToken")] [JsonProperty("automountServiceAccountToken", NullValueHandling = NullValueHandling.Ignore)] public bool? AutomountServiceAccountToken { get; set; } /// /// If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the pod will not have a domainname at all. /// [YamlMember(Alias = "subdomain")] [JsonProperty("subdomain", NullValueHandling = NullValueHandling.Ignore)] public string Subdomain { get; set; } /// /// NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ /// [YamlMember(Alias = "nodeSelector")] [JsonProperty("nodeSelector", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary NodeSelector { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNodeSelector() => NodeSelector.Count > 0; /// /// Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer. /// [YamlMember(Alias = "activeDeadlineSeconds")] [JsonProperty("activeDeadlineSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? ActiveDeadlineSeconds { get; set; } /// /// List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "containers")] [JsonProperty("containers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Containers { get; } = new List(); /// /// EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true. /// [YamlMember(Alias = "enableServiceLinks")] [JsonProperty("enableServiceLinks", NullValueHandling = NullValueHandling.Ignore)] public bool? EnableServiceLinks { get; set; } /// /// 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. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "ephemeralContainers")] [JsonProperty("ephemeralContainers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List EphemeralContainers { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEphemeralContainers() => EphemeralContainers.Count > 0; /// /// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. /// [MergeStrategy(Key = "ip")] [YamlMember(Alias = "hostAliases")] [JsonProperty("hostAliases", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List HostAliases { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHostAliases() => HostAliases.Count > 0; /// /// Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature. /// [YamlMember(Alias = "hostUsers")] [JsonProperty("hostUsers", NullValueHandling = NullValueHandling.Ignore)] public bool? HostUsers { get; set; } /// /// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "imagePullSecrets")] [JsonProperty("imagePullSecrets", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ImagePullSecrets { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeImagePullSecrets() => ImagePullSecrets.Count > 0; /// /// List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "initContainers")] [JsonProperty("initContainers", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List InitContainers { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeInitContainers() => InitContainers.Count > 0; /// /// Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. /// /// If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions /// /// If 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.securityContext.supplementalGroupsPolicy - 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 /// [YamlMember(Alias = "os")] [JsonProperty("os", NullValueHandling = NullValueHandling.Ignore)] public PodOSV1 Os { get; set; } /// /// If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to "True" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates /// [YamlMember(Alias = "readinessGates")] [JsonProperty("readinessGates", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ReadinessGates { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeReadinessGates() => ReadinessGates.Count > 0; /// /// 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. /// /// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. /// /// This field is immutable. /// [RetainKeysStrategy] [MergeStrategy(Key = "name")] [YamlMember(Alias = "resourceClaims")] [JsonProperty("resourceClaims", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceClaims { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceClaims() => ResourceClaims.Count > 0; /// /// 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. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "schedulingGates")] [JsonProperty("schedulingGates", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List SchedulingGates { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSchedulingGates() => SchedulingGates.Count > 0; /// /// Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. /// [YamlMember(Alias = "terminationGracePeriodSeconds")] [JsonProperty("terminationGracePeriodSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? TerminationGracePeriodSeconds { get; set; } /// /// If specified, the pod's tolerations. /// [YamlMember(Alias = "tolerations")] [JsonProperty("tolerations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Tolerations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTolerations() => Tolerations.Count > 0; /// /// 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. /// [MergeStrategy(Key = "topologyKey")] [YamlMember(Alias = "topologySpreadConstraints")] [JsonProperty("topologySpreadConstraints", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List TopologySpreadConstraints { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTopologySpreadConstraints() => TopologySpreadConstraints.Count > 0; /// /// List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes /// [RetainKeysStrategy] [MergeStrategy(Key = "name")] [YamlMember(Alias = "volumes")] [JsonProperty("volumes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Volumes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumes() => Volumes.Count > 0; /// /// SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. /// [YamlMember(Alias = "securityContext")] [JsonProperty("securityContext", NullValueHandling = NullValueHandling.Ignore)] public PodSecurityContextV1 SecurityContext { get; set; } /// /// DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. /// [YamlMember(Alias = "serviceAccount")] [JsonProperty("serviceAccount", NullValueHandling = NullValueHandling.Ignore)] public string ServiceAccount { get; set; } /// /// If specified, the pod's scheduling constraints /// [YamlMember(Alias = "affinity")] [JsonProperty("affinity", NullValueHandling = NullValueHandling.Ignore)] public AffinityV1 Affinity { get; set; } /// /// 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'. /// [YamlMember(Alias = "dnsPolicy")] [JsonProperty("dnsPolicy", NullValueHandling = NullValueHandling.Ignore)] public string DnsPolicy { get; set; } /// /// PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. /// [YamlMember(Alias = "preemptionPolicy")] [JsonProperty("preemptionPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PreemptionPolicy { get; set; } /// /// The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority. /// [YamlMember(Alias = "priority")] [JsonProperty("priority", NullValueHandling = NullValueHandling.Ignore)] public int? Priority { get; set; } /// /// 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 /// [YamlMember(Alias = "restartPolicy")] [JsonProperty("restartPolicy", NullValueHandling = NullValueHandling.Ignore)] public string RestartPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. /// public partial class PodStatusV1 { /// /// 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 /// [YamlMember(Alias = "hostIP")] [JsonProperty("hostIP", NullValueHandling = NullValueHandling.Ignore)] public string HostIP { get; set; } /// /// podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated. /// [YamlMember(Alias = "podIP")] [JsonProperty("podIP", NullValueHandling = NullValueHandling.Ignore)] public string PodIP { get; set; } /// /// A human readable message indicating details about why the pod is in this condition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. /// [YamlMember(Alias = "nominatedNodeName")] [JsonProperty("nominatedNodeName", NullValueHandling = NullValueHandling.Ignore)] public string NominatedNodeName { get; set; } /// /// The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: /// /// Pending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. /// /// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase /// [YamlMember(Alias = "phase")] [JsonProperty("phase", NullValueHandling = NullValueHandling.Ignore)] public string Phase { get; set; } /// /// Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to "Proposed" /// [YamlMember(Alias = "resize")] [JsonProperty("resize", NullValueHandling = NullValueHandling.Ignore)] public string Resize { get; set; } /// /// RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. /// [YamlMember(Alias = "startTime")] [JsonProperty("startTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? StartTime { get; set; } /// /// A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted' /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// [YamlMember(Alias = "containerStatuses")] [JsonProperty("containerStatuses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ContainerStatuses { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeContainerStatuses() => ContainerStatuses.Count > 0; /// /// Status for any ephemeral containers that have run in this pod. /// [YamlMember(Alias = "ephemeralContainerStatuses")] [JsonProperty("ephemeralContainerStatuses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List EphemeralContainerStatuses { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeEphemeralContainerStatuses() => EphemeralContainerStatuses.Count > 0; /// /// hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is 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 means that HostIPs will not be updated even if there is a node is assigned to this pod. /// [MergeStrategy(Key = "ip")] [YamlMember(Alias = "hostIPs")] [JsonProperty("hostIPs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List HostIPs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHostIPs() => HostIPs.Count > 0; /// /// The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status /// [YamlMember(Alias = "initContainerStatuses")] [JsonProperty("initContainerStatuses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List InitContainerStatuses { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeInitContainerStatuses() => InitContainerStatuses.Count > 0; /// /// podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet. /// [MergeStrategy(Key = "ip")] [YamlMember(Alias = "podIPs")] [JsonProperty("podIPs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List PodIPs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePodIPs() => PodIPs.Count > 0; /// /// The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes /// [YamlMember(Alias = "qosClass")] [JsonProperty("qosClass", NullValueHandling = NullValueHandling.Ignore)] public string QosClass { get; set; } /// /// Status of resource claims. /// [RetainKeysStrategy] [MergeStrategy(Key = "name")] [YamlMember(Alias = "resourceClaimStatuses")] [JsonProperty("resourceClaimStatuses", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceClaimStatuses { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceClaimStatuses() => ResourceClaimStatuses.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PodTemplateListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodTemplateList is a list of PodTemplates. /// [KubeListItem("PodTemplate", "v1")] [KubeObject("PodTemplateList", "v1")] public partial class PodTemplateListV1 : KubeResourceListV1 { /// /// List of pod templates /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PodTemplateSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodTemplateSpec describes the data a pod should have when created from a template /// public partial class PodTemplateSpecV1 { /// /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata /// [YamlMember(Alias = "metadata")] [JsonProperty("metadata", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetaV1 Metadata { get; set; } /// /// Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PodSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodTemplateV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodTemplate describes a template for creating copies of a predefined pod. /// [KubeObject("PodTemplate", "v1")] [KubeApi(KubeAction.List, "api/v1/podtemplates")] [KubeApi(KubeAction.WatchList, "api/v1/watch/podtemplates")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/podtemplates")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/podtemplates")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/podtemplates/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/podtemplates/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/podtemplates/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/podtemplates/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/podtemplates")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/podtemplates")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/podtemplates/{name}")] public partial class PodTemplateV1 : KubeResourceV1 { /// /// Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Ignore)] public PodTemplateSpecV1 Template { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts. /// [KubeObject("Pod", "v1")] [KubeApi(KubeAction.List, "api/v1/pods")] [KubeApi(KubeAction.WatchList, "api/v1/watch/pods")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/pods")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/pods")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/pods/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/pods/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/pods/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/pods/{name}")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/pods/{name}/log")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/pods")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/pods")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/pods/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/pods/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/pods/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/pods/{name}/status")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers")] public partial class PodV1 : KubeResourceV1 { /// /// Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PodSpecV1 Spec { get; set; } /// /// Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PodStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodsMetricSourceV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. /// public partial class PodsMetricSourceV2 { /// /// metric identifies the target metric by name and selector /// [YamlMember(Alias = "metric")] [JsonProperty("metric", NullValueHandling = NullValueHandling.Include)] public MetricIdentifierV2 Metric { get; set; } /// /// target specifies the target value for the given metric /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public MetricTargetV2 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodsMetricSourceV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. /// public partial class PodsMetricSourceV2Beta1 { /// /// metricName is the name of the metric in question /// [YamlMember(Alias = "metricName")] [JsonProperty("metricName", NullValueHandling = NullValueHandling.Include)] public string MetricName { get; set; } /// /// targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity) /// [YamlMember(Alias = "targetAverageValue")] [JsonProperty("targetAverageValue", NullValueHandling = NullValueHandling.Include)] public string TargetAverageValue { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodsMetricStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second). /// public partial class PodsMetricStatusV2 { /// /// metric identifies the target metric by name and selector /// [YamlMember(Alias = "metric")] [JsonProperty("metric", NullValueHandling = NullValueHandling.Include)] public MetricIdentifierV2 Metric { get; set; } /// /// current contains the current value for the given metric /// [YamlMember(Alias = "current")] [JsonProperty("current", NullValueHandling = NullValueHandling.Include)] public MetricValueStatusV2 Current { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PodsMetricStatusV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second). /// public partial class PodsMetricStatusV2Beta1 { /// /// currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity) /// [YamlMember(Alias = "currentAverageValue")] [JsonProperty("currentAverageValue", NullValueHandling = NullValueHandling.Include)] public string CurrentAverageValue { get; set; } /// /// metricName is the name of the metric in question /// [YamlMember(Alias = "metricName")] [JsonProperty("metricName", NullValueHandling = NullValueHandling.Include)] public string MetricName { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PolicyRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. /// public partial class PolicyRuleV1 { /// /// APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "" represents the core API group and "*" represents all API groups. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// 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. /// [YamlMember(Alias = "nonResourceURLs")] [JsonProperty("nonResourceURLs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceURLs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNonResourceURLs() => NonResourceURLs.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// Resources is a list of resources this rule applies to. '*' represents all resources. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; /// /// Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PolicyRuleV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. /// public partial class PolicyRuleV1Alpha1 { /// /// APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// 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 This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. 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. /// [YamlMember(Alias = "nonResourceURLs")] [JsonProperty("nonResourceURLs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceURLs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNonResourceURLs() => NonResourceURLs.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// Resources is a list of resources this rule applies to. ResourceAll represents all resources. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; /// /// Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PolicyRuleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. /// public partial class PolicyRuleV1Beta1 { /// /// APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// 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. /// [YamlMember(Alias = "nonResourceURLs")] [JsonProperty("nonResourceURLs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceURLs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNonResourceURLs() => NonResourceURLs.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; /// /// Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PolicyRulesWithSubjectsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request. /// public partial class PolicyRulesWithSubjectsV1 { /// /// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL. /// [YamlMember(Alias = "nonResourceRules")] [JsonProperty("nonResourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNonResourceRules() => NonResourceRules.Count > 0; /// /// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty. /// [YamlMember(Alias = "resourceRules")] [JsonProperty("resourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0; /// /// subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PolicyRulesWithSubjectsV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request. /// public partial class PolicyRulesWithSubjectsV1Beta3 { /// /// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL. /// [YamlMember(Alias = "nonResourceRules")] [JsonProperty("nonResourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNonResourceRules() => NonResourceRules.Count > 0; /// /// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty. /// [YamlMember(Alias = "resourceRules")] [JsonProperty("resourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceRules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0; /// /// subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PortStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class PortStatusV1 { /// /// Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP" /// [YamlMember(Alias = "protocol")] [JsonProperty("protocol", NullValueHandling = NullValueHandling.Include)] public string Protocol { get; set; } /// /// Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use /// CamelCase names /// - cloud provider specific error values must have names that comply with the /// format foo.example.com/CamelCase. /// [YamlMember(Alias = "error")] [JsonProperty("error", NullValueHandling = NullValueHandling.Ignore)] public string Error { get; set; } /// /// Port is the port number of the service port of which status is recorded here /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Include)] public int Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PortworxVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PortworxVolumeSource represents a Portworx volume resource. /// public partial class PortworxVolumeSourceV1 { /// /// volumeID uniquely identifies a Portworx volume /// [YamlMember(Alias = "volumeID")] [JsonProperty("volumeID", NullValueHandling = NullValueHandling.Include)] public string VolumeID { get; set; } /// /// fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PreconditionsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out. /// public partial class PreconditionsV1 { /// /// Specifies the target UID. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// Specifies the target ResourceVersion /// [YamlMember(Alias = "resourceVersion")] [JsonProperty("resourceVersion", NullValueHandling = NullValueHandling.Ignore)] public string ResourceVersion { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PreferredSchedulingTermV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). /// public partial class PreferredSchedulingTermV1 { /// /// A node selector term, associated with the corresponding weight. /// [YamlMember(Alias = "preference")] [JsonProperty("preference", NullValueHandling = NullValueHandling.Include)] public NodeSelectorTermV1 Preference { get; set; } /// /// Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. /// [YamlMember(Alias = "weight")] [JsonProperty("weight", NullValueHandling = NullValueHandling.Include)] public int Weight { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityClassListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityClassList is a collection of priority classes. /// [KubeListItem("PriorityClass", "scheduling.k8s.io/v1")] [KubeObject("PriorityClassList", "scheduling.k8s.io/v1")] public partial class PriorityClassListV1 : KubeResourceListV1 { /// /// items is the list of PriorityClasses /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PriorityClassListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityClassList is a collection of priority classes. /// [KubeListItem("PriorityClass", "scheduling.k8s.io/v1alpha1")] [KubeObject("PriorityClassList", "scheduling.k8s.io/v1alpha1")] public partial class PriorityClassListV1Alpha1 : KubeResourceListV1 { /// /// items is the list of PriorityClasses /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PriorityClassListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityClassList is a collection of priority classes. /// [KubeListItem("PriorityClass", "scheduling.k8s.io/v1beta1")] [KubeObject("PriorityClassList", "scheduling.k8s.io/v1beta1")] public partial class PriorityClassListV1Beta1 : KubeResourceListV1 { /// /// items is the list of PriorityClasses /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PriorityClassV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer. /// [KubeObject("PriorityClass", "scheduling.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/scheduling.k8s.io/v1/priorityclasses")] [KubeApi(KubeAction.Create, "apis/scheduling.k8s.io/v1/priorityclasses")] [KubeApi(KubeAction.Get, "apis/scheduling.k8s.io/v1/priorityclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/scheduling.k8s.io/v1/priorityclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/scheduling.k8s.io/v1/priorityclasses/{name}")] [KubeApi(KubeAction.Update, "apis/scheduling.k8s.io/v1/priorityclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/scheduling.k8s.io/v1/watch/priorityclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/scheduling.k8s.io/v1/priorityclasses")] [KubeApi(KubeAction.Watch, "apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}")] public partial class PriorityClassV1 : KubeResourceV1 { /// /// value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec. /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Include)] public int Value { get; set; } /// /// description is an arbitrary string that usually provides guidelines on when this priority class should be used. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } /// /// globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority. /// [YamlMember(Alias = "globalDefault")] [JsonProperty("globalDefault", NullValueHandling = NullValueHandling.Ignore)] public bool? GlobalDefault { get; set; } /// /// preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. /// [YamlMember(Alias = "preemptionPolicy")] [JsonProperty("preemptionPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PreemptionPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityClassV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer. /// [KubeObject("PriorityClass", "scheduling.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/scheduling.k8s.io/v1alpha1/priorityclasses")] [KubeApi(KubeAction.Create, "apis/scheduling.k8s.io/v1alpha1/priorityclasses")] [KubeApi(KubeAction.Get, "apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}")] [KubeApi(KubeAction.Update, "apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/scheduling.k8s.io/v1alpha1/priorityclasses")] [KubeApi(KubeAction.Watch, "apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses/{name}")] public partial class PriorityClassV1Alpha1 : KubeResourceV1 { /// /// The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec. /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Include)] public int Value { get; set; } /// /// description is an arbitrary string that usually provides guidelines on when this priority class should be used. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } /// /// globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority. /// [YamlMember(Alias = "globalDefault")] [JsonProperty("globalDefault", NullValueHandling = NullValueHandling.Ignore)] public bool? GlobalDefault { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityClassV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer. /// [KubeObject("PriorityClass", "scheduling.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/scheduling.k8s.io/v1beta1/priorityclasses")] [KubeApi(KubeAction.Create, "apis/scheduling.k8s.io/v1beta1/priorityclasses")] [KubeApi(KubeAction.Get, "apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}")] [KubeApi(KubeAction.Update, "apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/scheduling.k8s.io/v1beta1/watch/priorityclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/scheduling.k8s.io/v1beta1/priorityclasses")] [KubeApi(KubeAction.Watch, "apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}")] public partial class PriorityClassV1Beta1 : KubeResourceV1 { /// /// The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec. /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Include)] public int Value { get; set; } /// /// description is an arbitrary string that usually provides guidelines on when this priority class should be used. /// [YamlMember(Alias = "description")] [JsonProperty("description", NullValueHandling = NullValueHandling.Ignore)] public string Description { get; set; } /// /// globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority. /// [YamlMember(Alias = "globalDefault")] [JsonProperty("globalDefault", NullValueHandling = NullValueHandling.Ignore)] public bool? GlobalDefault { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationCondition defines the condition of priority level. /// public partial class PriorityLevelConfigurationConditionV1 { /// /// `lastTransitionTime` is the last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// `message` is a human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// `type` is the type of the condition. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// `status` is the status of the condition. Can be True, False, Unknown. Required. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationConditionV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationCondition defines the condition of priority level. /// public partial class PriorityLevelConfigurationConditionV1Beta3 { /// /// `lastTransitionTime` is the last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// `message` is a human-readable message indicating details about last transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// `type` is the type of the condition. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// `status` is the status of the condition. Can be True, False, Unknown. Required. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. /// [KubeListItem("PriorityLevelConfiguration", "flowcontrol.apiserver.k8s.io/v1")] [KubeObject("PriorityLevelConfigurationList", "flowcontrol.apiserver.k8s.io/v1")] public partial class PriorityLevelConfigurationListV1 : KubeResourceListV1 { /// /// `items` is a list of request-priorities. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationListV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. /// [KubeListItem("PriorityLevelConfiguration", "flowcontrol.apiserver.k8s.io/v1beta3")] [KubeObject("PriorityLevelConfigurationList", "flowcontrol.apiserver.k8s.io/v1beta3")] public partial class PriorityLevelConfigurationListV1Beta3 : KubeResourceListV1 { /// /// `items` is a list of request-priorities. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationReference contains information that points to the "request-priority" being used. /// public partial class PriorityLevelConfigurationReferenceV1 { /// /// `name` is the name of the priority level configuration being referenced Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationReferenceV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationReference contains information that points to the "request-priority" being used. /// public partial class PriorityLevelConfigurationReferenceV1Beta3 { /// /// `name` is the name of the priority level configuration being referenced Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationSpec specifies the configuration of a priority level. /// public partial class PriorityLevelConfigurationSpecV1 { /// /// `limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `"Limited"`. /// [YamlMember(Alias = "limited")] [JsonProperty("limited", NullValueHandling = NullValueHandling.Ignore)] public LimitedPriorityLevelConfigurationV1 Limited { get; set; } /// /// `type` indicates whether this priority level is subject to limitation on request execution. A value of `"Exempt"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `"Limited"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// `exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `"Limited"`. This field MAY be non-empty if `type` is `"Exempt"`. If empty and `type` is `"Exempt"` then the default values for `ExemptPriorityLevelConfiguration` apply. /// [YamlMember(Alias = "exempt")] [JsonProperty("exempt", NullValueHandling = NullValueHandling.Ignore)] public ExemptPriorityLevelConfigurationV1 Exempt { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationSpecV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationSpec specifies the configuration of a priority level. /// public partial class PriorityLevelConfigurationSpecV1Beta3 { /// /// `limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `"Limited"`. /// [YamlMember(Alias = "limited")] [JsonProperty("limited", NullValueHandling = NullValueHandling.Ignore)] public LimitedPriorityLevelConfigurationV1Beta3 Limited { get; set; } /// /// `type` indicates whether this priority level is subject to limitation on request execution. A value of `"Exempt"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `"Limited"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// `exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `"Limited"`. This field MAY be non-empty if `type` is `"Exempt"`. If empty and `type` is `"Exempt"` then the default values for `ExemptPriorityLevelConfiguration` apply. /// [YamlMember(Alias = "exempt")] [JsonProperty("exempt", NullValueHandling = NullValueHandling.Ignore)] public ExemptPriorityLevelConfigurationV1Beta3 Exempt { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationStatus represents the current state of a "request-priority". /// public partial class PriorityLevelConfigurationStatusV1 { /// /// `conditions` is the current state of "request-priority". /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationStatusV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfigurationStatus represents the current state of a "request-priority". /// public partial class PriorityLevelConfigurationStatusV1Beta3 { /// /// `conditions` is the current state of "request-priority". /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfiguration represents the configuration of a priority level. /// [KubeObject("PriorityLevelConfiguration", "flowcontrol.apiserver.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations")] [KubeApi(KubeAction.Create, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Delete, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.WatchList, "apis/flowcontrol.apiserver.k8s.io/v1/watch/prioritylevelconfigurations")] [KubeApi(KubeAction.DeleteCollection, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status")] [KubeApi(KubeAction.Watch, "apis/flowcontrol.apiserver.k8s.io/v1/watch/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status")] public partial class PriorityLevelConfigurationV1 : KubeResourceV1 { /// /// `spec` is the specification of the desired behavior of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PriorityLevelConfigurationSpecV1 Spec { get; set; } /// /// `status` is the current status of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PriorityLevelConfigurationStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/PriorityLevelConfigurationV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// PriorityLevelConfiguration represents the configuration of a priority level. /// [KubeObject("PriorityLevelConfiguration", "flowcontrol.apiserver.k8s.io/v1beta3")] [KubeApi(KubeAction.List, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations")] [KubeApi(KubeAction.Create, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Delete, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.WatchList, "apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/prioritylevelconfigurations")] [KubeApi(KubeAction.DeleteCollection, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations")] [KubeApi(KubeAction.Get, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}/status")] [KubeApi(KubeAction.Watch, "apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/prioritylevelconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}/status")] [KubeApi(KubeAction.Update, "apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}/status")] public partial class PriorityLevelConfigurationV1Beta3 : KubeResourceV1 { /// /// `spec` is the specification of the desired behavior of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public PriorityLevelConfigurationSpecV1Beta3 Spec { get; set; } /// /// `status` is the current status of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public PriorityLevelConfigurationStatusV1Beta3 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ProbeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. /// public partial class ProbeV1 { /// /// Exec specifies the action to take. /// [YamlMember(Alias = "exec")] [JsonProperty("exec", NullValueHandling = NullValueHandling.Ignore)] public ExecActionV1 Exec { get; set; } /// /// GRPC specifies an action involving a GRPC port. /// [YamlMember(Alias = "grpc")] [JsonProperty("grpc", NullValueHandling = NullValueHandling.Ignore)] public GRPCActionV1 Grpc { get; set; } /// /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. /// [YamlMember(Alias = "failureThreshold")] [JsonProperty("failureThreshold", NullValueHandling = NullValueHandling.Ignore)] public int? FailureThreshold { get; set; } /// /// Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. /// [YamlMember(Alias = "successThreshold")] [JsonProperty("successThreshold", NullValueHandling = NullValueHandling.Ignore)] public int? SuccessThreshold { get; set; } /// /// Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes /// [YamlMember(Alias = "initialDelaySeconds")] [JsonProperty("initialDelaySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? InitialDelaySeconds { get; set; } /// /// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. /// [YamlMember(Alias = "periodSeconds")] [JsonProperty("periodSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? PeriodSeconds { get; set; } /// /// Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. /// [YamlMember(Alias = "terminationGracePeriodSeconds")] [JsonProperty("terminationGracePeriodSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? TerminationGracePeriodSeconds { get; set; } /// /// Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes /// [YamlMember(Alias = "timeoutSeconds")] [JsonProperty("timeoutSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? TimeoutSeconds { get; set; } /// /// HTTPGet specifies the http request to perform. /// [YamlMember(Alias = "httpGet")] [JsonProperty("httpGet", NullValueHandling = NullValueHandling.Ignore)] public HTTPGetActionV1 HttpGet { get; set; } /// /// TCPSocket specifies an action involving a TCP port. /// [YamlMember(Alias = "tcpSocket")] [JsonProperty("tcpSocket", NullValueHandling = NullValueHandling.Ignore)] public TCPSocketActionV1 TcpSocket { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ProjectedVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a projected volume source /// public partial class ProjectedVolumeSourceV1 { /// /// defaultMode are the 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. 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. /// [YamlMember(Alias = "defaultMode")] [JsonProperty("defaultMode", NullValueHandling = NullValueHandling.Ignore)] public int? DefaultMode { get; set; } /// /// sources is the list of volume projections. Each entry in this list handles one source. /// [YamlMember(Alias = "sources")] [JsonProperty("sources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Sources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSources() => Sources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/QueuingConfigurationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// QueuingConfiguration holds the configuration parameters for queuing /// public partial class QueuingConfigurationV1 { /// /// `handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8. /// [YamlMember(Alias = "handSize")] [JsonProperty("handSize", NullValueHandling = NullValueHandling.Ignore)] public int? HandSize { get; set; } /// /// `queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64. /// [YamlMember(Alias = "queues")] [JsonProperty("queues", NullValueHandling = NullValueHandling.Ignore)] public int? Queues { get; set; } /// /// `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50. /// [YamlMember(Alias = "queueLengthLimit")] [JsonProperty("queueLengthLimit", NullValueHandling = NullValueHandling.Ignore)] public int? QueueLengthLimit { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/QueuingConfigurationV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// QueuingConfiguration holds the configuration parameters for queuing /// public partial class QueuingConfigurationV1Beta3 { /// /// `handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8. /// [YamlMember(Alias = "handSize")] [JsonProperty("handSize", NullValueHandling = NullValueHandling.Ignore)] public int? HandSize { get; set; } /// /// `queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64. /// [YamlMember(Alias = "queues")] [JsonProperty("queues", NullValueHandling = NullValueHandling.Ignore)] public int? Queues { get; set; } /// /// `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50. /// [YamlMember(Alias = "queueLengthLimit")] [JsonProperty("queueLengthLimit", NullValueHandling = NullValueHandling.Ignore)] public int? QueueLengthLimit { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/QuobyteVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling. /// public partial class QuobyteVolumeSourceV1 { /// /// volume is a string that references an already created Quobyte volume by name. /// [YamlMember(Alias = "volume")] [JsonProperty("volume", NullValueHandling = NullValueHandling.Include)] public string Volume { get; set; } /// /// group to map volume access to Default is no group /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } /// /// user to map volume access to Defaults to serivceaccount user /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } /// /// tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin /// [YamlMember(Alias = "tenant")] [JsonProperty("tenant", NullValueHandling = NullValueHandling.Ignore)] public string Tenant { get; set; } /// /// readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } /// /// registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes /// [YamlMember(Alias = "registry")] [JsonProperty("registry", NullValueHandling = NullValueHandling.Include)] public string Registry { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RBDPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling. /// public partial class RBDPersistentVolumeSourceV1 { /// /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "image")] [JsonProperty("image", NullValueHandling = NullValueHandling.Include)] public string Image { get; set; } /// /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public SecretReferenceV1 SecretRef { get; set; } /// /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "keyring")] [JsonProperty("keyring", NullValueHandling = NullValueHandling.Ignore)] public string Keyring { get; set; } /// /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "pool")] [JsonProperty("pool", NullValueHandling = NullValueHandling.Ignore)] public string Pool { get; set; } /// /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } /// /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "monitors")] [JsonProperty("monitors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Monitors { get; } = new List(); /// /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RBDVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling. /// public partial class RBDVolumeSourceV1 { /// /// fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "image")] [JsonProperty("image", NullValueHandling = NullValueHandling.Include)] public string Image { get; set; } /// /// secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public LocalObjectReferenceV1 SecretRef { get; set; } /// /// keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "keyring")] [JsonProperty("keyring", NullValueHandling = NullValueHandling.Ignore)] public string Keyring { get; set; } /// /// pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "pool")] [JsonProperty("pool", NullValueHandling = NullValueHandling.Ignore)] public string Pool { get; set; } /// /// user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } /// /// monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "monitors")] [JsonProperty("monitors", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Monitors { get; } = new List(); /// /// readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RawExtensionRuntime.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RawExtension is used to hold extensions in external versions. /// /// To use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types. /// /// // Internal package: /// /// type MyAPIObject struct { /// runtime.TypeMeta `json:",inline"` /// MyPlugin runtime.Object `json:"myPlugin"` /// } /// /// type PluginA struct { /// AOption string `json:"aOption"` /// } /// /// // External package: /// /// type MyAPIObject struct { /// runtime.TypeMeta `json:",inline"` /// MyPlugin runtime.RawExtension `json:"myPlugin"` /// } /// /// type PluginA struct { /// AOption string `json:"aOption"` /// } /// /// // On the wire, the JSON will look something like this: /// /// { /// "kind":"MyAPIObject", /// "apiVersion":"v1", /// "myPlugin": { /// "kind":"PluginA", /// "aOption":"foo", /// }, /// } /// /// So what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.) /// public partial class RawExtensionRuntime { } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetCondition describes the state of a replica set at a certain point. /// public partial class ReplicaSetConditionV1 { /// /// The last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of replica set condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetCondition describes the state of a replica set at a certain point. /// public partial class ReplicaSetConditionV1Beta1 { /// /// The last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of replica set condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetConditionV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetCondition describes the state of a replica set at a certain point. /// public partial class ReplicaSetConditionV1Beta2 { /// /// The last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of replica set condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetList is a collection of ReplicaSets. /// [KubeListItem("ReplicaSet", "apps/v1")] [KubeObject("ReplicaSetList", "apps/v1")] public partial class ReplicaSetListV1 : KubeResourceListV1 { /// /// List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetListV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetList is a collection of ReplicaSets. /// [KubeListItem("ReplicaSet", "apps/v1beta2")] [KubeObject("ReplicaSetList", "apps/v1beta2")] public partial class ReplicaSetListV1Beta2 : KubeResourceListV1 { /// /// List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetSpec is the specification of a ReplicaSet. /// public partial class ReplicaSetSpecV1 { /// /// Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Ignore)] public PodTemplateSpecV1 Template { get; set; } /// /// Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetSpec is the specification of a ReplicaSet. /// public partial class ReplicaSetSpecV1Beta1 { /// /// Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Ignore)] public PodTemplateSpecV1 Template { get; set; } /// /// Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetSpecV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetSpec is the specification of a ReplicaSet. /// public partial class ReplicaSetSpecV1Beta2 { /// /// Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Ignore)] public PodTemplateSpecV1 Template { get; set; } /// /// Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetStatus represents the current status of a ReplicaSet. /// public partial class ReplicaSetStatusV1 { /// /// ObservedGeneration reflects the generation of the most recently observed ReplicaSet. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The number of available replicas (ready for at least minReadySeconds) for this replica set. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a replica set's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// The number of pods that have labels matching the labels of the pod template of the replicaset. /// [YamlMember(Alias = "fullyLabeledReplicas")] [JsonProperty("fullyLabeledReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? FullyLabeledReplicas { get; set; } /// /// readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetStatus represents the current status of a ReplicaSet. /// public partial class ReplicaSetStatusV1Beta1 { /// /// ObservedGeneration reflects the generation of the most recently observed ReplicaSet. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The number of available replicas (ready for at least minReadySeconds) for this replica set. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a replica set's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// The number of pods that have labels matching the labels of the pod template of the replicaset. /// [YamlMember(Alias = "fullyLabeledReplicas")] [JsonProperty("fullyLabeledReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? FullyLabeledReplicas { get; set; } /// /// The number of ready replicas for this replica set. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetStatusV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSetStatus represents the current status of a ReplicaSet. /// public partial class ReplicaSetStatusV1Beta2 { /// /// ObservedGeneration reflects the generation of the most recently observed ReplicaSet. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The number of available replicas (ready for at least minReadySeconds) for this replica set. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a replica set's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// The number of pods that have labels matching the labels of the pod template of the replicaset. /// [YamlMember(Alias = "fullyLabeledReplicas")] [JsonProperty("fullyLabeledReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? FullyLabeledReplicas { get; set; } /// /// The number of ready replicas for this replica set. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicaSet ensures that a specified number of pod replicas are running at any given time. /// [KubeObject("ReplicaSet", "apps/v1")] [KubeApi(KubeAction.List, "apis/apps/v1/replicasets")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/replicasets")] [KubeApi(KubeAction.List, "apis/apps/v1/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.Create, "apis/apps/v1/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status")] public partial class ReplicaSetV1 : KubeResourceV1 { /// /// Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ReplicaSetSpecV1 Spec { get; set; } /// /// Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ReplicaSetStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicaSetV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time. /// [KubeObject("ReplicaSet", "apps/v1beta2")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/replicasets")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/replicasets")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.Create, "apis/apps/v1beta2/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta2/namespaces/{namespace}/replicasets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status")] public partial class ReplicaSetV1Beta2 : KubeResourceV1 { /// /// Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ReplicaSetSpecV1Beta2 Spec { get; set; } /// /// Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ReplicaSetStatusV1Beta2 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicationControllerConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicationControllerCondition describes the state of a replication controller at a certain point. /// public partial class ReplicationControllerConditionV1 { /// /// The last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of replication controller condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicationControllerListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicationControllerList is a collection of replication controllers. /// [KubeListItem("ReplicationController", "v1")] [KubeObject("ReplicationControllerList", "v1")] public partial class ReplicationControllerListV1 : KubeResourceListV1 { /// /// List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ReplicationControllerSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicationControllerSpec is the specification of a replication controller. /// public partial class ReplicationControllerSpecV1 { /// /// Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. The only allowed template.spec.restartPolicy value is "Always". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Ignore)] public PodTemplateSpecV1 Template { get; set; } /// /// Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Selector { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSelector() => Selector.Count > 0; /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicationControllerStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicationControllerStatus represents the current status of a replication controller. /// public partial class ReplicationControllerStatusV1 { /// /// ObservedGeneration reflects the generation of the most recently observed replication controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The number of available replicas (ready for at least minReadySeconds) for this replication controller. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a replication controller's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// The number of pods that have labels matching the labels of the pod template of the replication controller. /// [YamlMember(Alias = "fullyLabeledReplicas")] [JsonProperty("fullyLabeledReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? FullyLabeledReplicas { get; set; } /// /// The number of ready replicas for this replication controller. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ReplicationControllerV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ReplicationController represents the configuration of a replication controller. /// [KubeObject("ReplicationController", "v1")] [KubeApi(KubeAction.List, "api/v1/replicationcontrollers")] [KubeApi(KubeAction.WatchList, "api/v1/watch/replicationcontrollers")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/replicationcontrollers")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/replicationcontrollers")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/replicationcontrollers")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/replicationcontrollers")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status")] public partial class ReplicationControllerV1 : KubeResourceV1 { /// /// Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ReplicationControllerSpecV1 Spec { get; set; } /// /// Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ReplicationControllerStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceAttributesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface /// public partial class ResourceAttributesV1 { /// /// Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. "*" means all. /// [YamlMember(Alias = "verb")] [JsonProperty("verb", NullValueHandling = NullValueHandling.Ignore)] public string Verb { get; set; } /// /// Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews "" (empty) is empty for cluster-scoped resources "" (empty) means "all" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// Resource is one of the existing resource types. "*" means all. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public string Resource { get; set; } /// /// Subresource is one of the existing resource types. "" means none. /// [YamlMember(Alias = "subresource")] [JsonProperty("subresource", NullValueHandling = NullValueHandling.Ignore)] public string Subresource { get; set; } /// /// Version is the API Version of the Resource. "*" means all. /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// Group is the API Group of the Resource. "*" means all. /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } /// /// fieldSelector describes the limitation on access based on field. It can only limit access, not broaden it. /// /// This field is alpha-level. To use this field, you must enable the `AuthorizeWithSelectors` feature gate (disabled by default). /// [YamlMember(Alias = "fieldSelector")] [JsonProperty("fieldSelector", NullValueHandling = NullValueHandling.Ignore)] public FieldSelectorAttributesV1 FieldSelector { get; set; } /// /// labelSelector describes the limitation on access based on labels. It can only limit access, not broaden it. /// /// This field is alpha-level. To use this field, you must enable the `AuthorizeWithSelectors` feature gate (disabled by default). /// [YamlMember(Alias = "labelSelector")] [JsonProperty("labelSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorAttributesV1 LabelSelector { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceAttributesV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface /// public partial class ResourceAttributesV1Beta1 { /// /// Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. "*" means all. /// [YamlMember(Alias = "verb")] [JsonProperty("verb", NullValueHandling = NullValueHandling.Ignore)] public string Verb { get; set; } /// /// Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews "" (empty) is empty for cluster-scoped resources "" (empty) means "all" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// Resource is one of the existing resource types. "*" means all. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Ignore)] public string Resource { get; set; } /// /// Subresource is one of the existing resource types. "" means none. /// [YamlMember(Alias = "subresource")] [JsonProperty("subresource", NullValueHandling = NullValueHandling.Ignore)] public string Subresource { get; set; } /// /// Version is the API Version of the Resource. "*" means all. /// [YamlMember(Alias = "version")] [JsonProperty("version", NullValueHandling = NullValueHandling.Ignore)] public string Version { get; set; } /// /// Group is the API Group of the Resource. "*" means all. /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimConsumerReferenceV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim. /// public partial class ResourceClaimConsumerReferenceV1Alpha3 { /// /// UID identifies exactly one incarnation of the resource. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Include)] public string Uid { get; set; } /// /// Name is the name of resource being referenced. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Resource is the type of resource being referenced, for example "pods". /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Include)] public string Resource { get; set; } /// /// APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources. /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Ignore)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimListV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimList is a collection of claims. /// [KubeListItem("ResourceClaim", "resource.k8s.io/v1alpha3")] [KubeObject("ResourceClaimList", "resource.k8s.io/v1alpha3")] public partial class ResourceClaimListV1Alpha3 : KubeResourceListV1 { /// /// Items is the list of resource claims. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimSchedulingStatusV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with "WaitForFirstConsumer" allocation mode. /// public partial class ResourceClaimSchedulingStatusV1Alpha3 { /// /// Name matches the pod.spec.resourceClaims[*].Name field. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for. /// /// The size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced. /// [YamlMember(Alias = "unsuitableNodes")] [JsonProperty("unsuitableNodes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List UnsuitableNodes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeUnsuitableNodes() => UnsuitableNodes.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimSpecV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it. /// public partial class ResourceClaimSpecV1Alpha3 { /// /// Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod. /// /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. /// /// This is an alpha field and requires enabling the DRAControlPlaneController feature gate. /// [YamlMember(Alias = "controller")] [JsonProperty("controller", NullValueHandling = NullValueHandling.Ignore)] public string Controller { get; set; } /// /// Devices defines how to request devices. /// [YamlMember(Alias = "devices")] [JsonProperty("devices", NullValueHandling = NullValueHandling.Ignore)] public DeviceClaimV1Alpha3 Devices { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimStatusV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was. /// public partial class ResourceClaimStatusV1Alpha3 { /// /// Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor. /// /// This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field. /// /// This is an alpha field and requires enabling the DRAControlPlaneController feature gate. /// [YamlMember(Alias = "deallocationRequested")] [JsonProperty("deallocationRequested", NullValueHandling = NullValueHandling.Ignore)] public bool? DeallocationRequested { get; set; } /// /// Allocation is set once the claim has been allocated successfully. /// [YamlMember(Alias = "allocation")] [JsonProperty("allocation", NullValueHandling = NullValueHandling.Ignore)] public AllocationResultV1Alpha3 Allocation { get; set; } /// /// ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated. /// /// In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled. /// /// Both schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again. /// /// There can be at most 32 such reservations. This may get increased in the future, but not reduced. /// [MergeStrategy(Key = "uid")] [YamlMember(Alias = "reservedFor")] [JsonProperty("reservedFor", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ReservedFor { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeReservedFor() => ReservedFor.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimTemplateListV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimTemplateList is a collection of claim templates. /// [KubeListItem("ResourceClaimTemplate", "resource.k8s.io/v1alpha3")] [KubeObject("ResourceClaimTemplateList", "resource.k8s.io/v1alpha3")] public partial class ResourceClaimTemplateListV1Alpha3 : KubeResourceListV1 { /// /// Items is the list of resource claim templates. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimTemplateSpecV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim. /// public partial class ResourceClaimTemplateSpecV1Alpha3 { /// /// ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. /// [YamlMember(Alias = "metadata")] [JsonProperty("metadata", NullValueHandling = NullValueHandling.Ignore)] public ObjectMetaV1 Metadata { get; set; } /// /// Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public ResourceClaimSpecV1Alpha3 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimTemplateV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaimTemplate is used to produce ResourceClaim objects. /// /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. /// [KubeObject("ResourceClaimTemplate", "resource.k8s.io/v1alpha3")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/resourceclaimtemplates")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/resourceclaimtemplates")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates")] [KubeApi(KubeAction.Create, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates")] [KubeApi(KubeAction.Get, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates/{name}")] [KubeApi(KubeAction.Patch, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates/{name}")] [KubeApi(KubeAction.Delete, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates/{name}")] [KubeApi(KubeAction.Update, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates/{name}")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/namespaces/{namespace}/resourceclaimtemplates")] [KubeApi(KubeAction.DeleteCollection, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates")] [KubeApi(KubeAction.Watch, "apis/resource.k8s.io/v1alpha3/watch/namespaces/{namespace}/resourceclaimtemplates/{name}")] public partial class ResourceClaimTemplateV1Alpha3 : KubeResourceV1 { /// /// Describes the ResourceClaim that is to be generated. /// /// This field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public ResourceClaimTemplateSpecV1Alpha3 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaim references one entry in PodSpec.ResourceClaims. /// public partial class ResourceClaimV1 { /// /// Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request. /// [YamlMember(Alias = "request")] [JsonProperty("request", NullValueHandling = NullValueHandling.Ignore)] public string Request { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceClaimV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. /// /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. /// [KubeObject("ResourceClaim", "resource.k8s.io/v1alpha3")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/resourceclaims")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/resourceclaims")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims")] [KubeApi(KubeAction.Create, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims")] [KubeApi(KubeAction.Get, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}")] [KubeApi(KubeAction.Patch, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}")] [KubeApi(KubeAction.Delete, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}")] [KubeApi(KubeAction.Update, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/namespaces/{namespace}/resourceclaims")] [KubeApi(KubeAction.DeleteCollection, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims")] [KubeApi(KubeAction.Get, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}/status")] [KubeApi(KubeAction.Watch, "apis/resource.k8s.io/v1alpha3/watch/namespaces/{namespace}/resourceclaims/{name}")] [KubeApi(KubeAction.Patch, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}/status")] [KubeApi(KubeAction.Update, "apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}/status")] public partial class ResourceClaimV1Alpha3 : KubeResourceV1 { /// /// Spec describes what is being requested and how to configure it. The spec is immutable. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public ResourceClaimSpecV1Alpha3 Spec { get; set; } /// /// Status describes whether the claim is ready to use and what has been allocated. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ResourceClaimStatusV1Alpha3 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceFieldSelectorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceFieldSelector represents container resources (cpu, memory) and their output format /// public partial class ResourceFieldSelectorV1 { /// /// Container name: required for volumes, optional for env vars /// [YamlMember(Alias = "containerName")] [JsonProperty("containerName", NullValueHandling = NullValueHandling.Ignore)] public string ContainerName { get; set; } /// /// Required: resource to select /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Include)] public string Resource { get; set; } /// /// Specifies the output format of the exposed resources, defaults to "1" /// [YamlMember(Alias = "divisor")] [JsonProperty("divisor", NullValueHandling = NullValueHandling.Ignore)] public string Divisor { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceHealthV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP. /// public partial class ResourceHealthV1 { /// /// ResourceID is the unique identifier of the resource. See the ResourceID type for more information. /// [YamlMember(Alias = "resourceID")] [JsonProperty("resourceID", NullValueHandling = NullValueHandling.Include)] public string ResourceID { get; set; } /// /// Health of the resource. can be one of: /// - Healthy: operates as normal /// - Unhealthy: reported unhealthy. We consider this a temporary health issue /// since we do not have a mechanism today to distinguish /// temporary and permanent issues. /// - Unknown: The status cannot be determined. /// For example, Device Plugin got unregistered and hasn't been re-registered since. /// /// In future we may want to introduce the PermanentlyUnhealthy Status. /// [YamlMember(Alias = "health")] [JsonProperty("health", NullValueHandling = NullValueHandling.Ignore)] public string Health { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceMetricSourceV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set. /// public partial class ResourceMetricSourceV2 { /// /// name is the name of the resource in question. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// target specifies the target value for the given metric /// [YamlMember(Alias = "target")] [JsonProperty("target", NullValueHandling = NullValueHandling.Include)] public MetricTargetV2 Target { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceMetricSourceV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set. /// public partial class ResourceMetricSourceV2Beta1 { /// /// name is the name of the resource in question. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. /// [YamlMember(Alias = "targetAverageValue")] [JsonProperty("targetAverageValue", NullValueHandling = NullValueHandling.Ignore)] public string TargetAverageValue { get; set; } /// /// targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. /// [YamlMember(Alias = "targetAverageUtilization")] [JsonProperty("targetAverageUtilization", NullValueHandling = NullValueHandling.Ignore)] public int? TargetAverageUtilization { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceMetricStatusV2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// public partial class ResourceMetricStatusV2 { /// /// name is the name of the resource in question. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// current contains the current value for the given metric /// [YamlMember(Alias = "current")] [JsonProperty("current", NullValueHandling = NullValueHandling.Include)] public MetricValueStatusV2 Current { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceMetricStatusV2Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. /// public partial class ResourceMetricStatusV2Beta1 { /// /// currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. It will always be set, regardless of the corresponding metric specification. /// [YamlMember(Alias = "currentAverageValue")] [JsonProperty("currentAverageValue", NullValueHandling = NullValueHandling.Include)] public string CurrentAverageValue { get; set; } /// /// name is the name of the resource in question. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification. /// [YamlMember(Alias = "currentAverageUtilization")] [JsonProperty("currentAverageUtilization", NullValueHandling = NullValueHandling.Ignore)] public int? CurrentAverageUtilization { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourcePolicyRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==""`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace. /// public partial class ResourcePolicyRuleV1 { /// /// `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list. /// [YamlMember(Alias = "clusterScope")] [JsonProperty("clusterScope", NullValueHandling = NullValueHandling.Ignore)] public bool? ClusterScope { get; set; } /// /// `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API groups and, if present, must be the only entry. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// `namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains "*". Note that "*" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true. /// [YamlMember(Alias = "namespaces")] [JsonProperty("namespaces", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Namespaces { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNamespaces() => Namespaces.Count > 0; /// /// `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ "services", "nodes/status" ]. This list may not be empty. "*" matches all resources and, if present, must be the only entry. Required. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if present, must be the only entry. Required. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourcePolicyRuleV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==""`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace. /// public partial class ResourcePolicyRuleV1Beta3 { /// /// `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list. /// [YamlMember(Alias = "clusterScope")] [JsonProperty("clusterScope", NullValueHandling = NullValueHandling.Ignore)] public bool? ClusterScope { get; set; } /// /// `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API groups and, if present, must be the only entry. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// `namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains "*". Note that "*" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true. /// [YamlMember(Alias = "namespaces")] [JsonProperty("namespaces", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Namespaces { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNamespaces() => Namespaces.Count > 0; /// /// `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ "services", "nodes/status" ]. This list may not be empty. "*" matches all resources and, if present, must be the only entry. Required. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if present, must be the only entry. Required. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourcePoolV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourcePool describes the pool that ResourceSlices belong to. /// public partial class ResourcePoolV1Alpha3 { /// /// Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required. /// /// It must not be longer than 253 characters and must consist of one or more DNS sub-domains separated by slashes. This field is immutable. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted. /// /// Combined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state. /// [YamlMember(Alias = "generation")] [JsonProperty("generation", NullValueHandling = NullValueHandling.Include)] public long Generation { get; set; } /// /// ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero. /// /// Consumers can use this to check whether they have seen all ResourceSlices belonging to the same pool. /// [YamlMember(Alias = "resourceSliceCount")] [JsonProperty("resourceSliceCount", NullValueHandling = NullValueHandling.Include)] public long ResourceSliceCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceQuotaListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceQuotaList is a list of ResourceQuota items. /// [KubeListItem("ResourceQuota", "v1")] [KubeObject("ResourceQuotaList", "v1")] public partial class ResourceQuotaListV1 : KubeResourceListV1 { /// /// Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourceQuotaSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceQuotaSpec defines the desired hard limits to enforce for Quota. /// public partial class ResourceQuotaSpecV1 { /// /// hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ /// [YamlMember(Alias = "hard")] [JsonProperty("hard", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Hard { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHard() => Hard.Count > 0; /// /// scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched. /// [YamlMember(Alias = "scopeSelector")] [JsonProperty("scopeSelector", NullValueHandling = NullValueHandling.Ignore)] public ScopeSelectorV1 ScopeSelector { get; set; } /// /// A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects. /// [YamlMember(Alias = "scopes")] [JsonProperty("scopes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Scopes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeScopes() => Scopes.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ResourceQuotaStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceQuotaStatus defines the enforced hard limits and observed use. /// public partial class ResourceQuotaStatusV1 { /// /// Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ /// [YamlMember(Alias = "hard")] [JsonProperty("hard", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Hard { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeHard() => Hard.Count > 0; /// /// Used is the current observed total usage of the resource in the namespace. /// [YamlMember(Alias = "used")] [JsonProperty("used", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Used { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeUsed() => Used.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ResourceQuotaV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceQuota sets aggregate quota restrictions enforced per namespace /// [KubeObject("ResourceQuota", "v1")] [KubeApi(KubeAction.List, "api/v1/resourcequotas")] [KubeApi(KubeAction.WatchList, "api/v1/watch/resourcequotas")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/resourcequotas")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/resourcequotas")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/resourcequotas/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/resourcequotas/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/resourcequotas/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/resourcequotas/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/resourcequotas")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/resourcequotas")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/resourcequotas/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/resourcequotas/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/resourcequotas/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/resourcequotas/{name}/status")] public partial class ResourceQuotaV1 : KubeResourceV1 { /// /// Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ResourceQuotaSpecV1 Spec { get; set; } /// /// Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ResourceQuotaStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceRequirementsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceRequirements describes the compute resource requirements. /// public partial class ResourceRequirementsV1 { /// /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. /// /// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. /// /// This field is immutable. It can only be set for containers. /// [YamlMember(Alias = "claims")] [JsonProperty("claims", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Claims { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeClaims() => Claims.Count > 0; /// /// Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ /// [YamlMember(Alias = "limits")] [JsonProperty("limits", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Limits { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeLimits() => Limits.Count > 0; /// /// Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ /// [YamlMember(Alias = "requests")] [JsonProperty("requests", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Requests { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequests() => Requests.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ResourceRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceRule 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. /// public partial class ResourceRuleV1 { /// /// APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "*" means all. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "*" means all. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. /// "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; /// /// Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. "*" means all. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourceRuleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceRule 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. /// public partial class ResourceRuleV1Beta1 { /// /// APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "*" means all. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "*" means all. /// [YamlMember(Alias = "resourceNames")] [JsonProperty("resourceNames", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceNames { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0; /// /// Resources is a list of resources this rule applies to. "*" means all in the specified apiGroups. /// "*/foo" represents the subresource 'foo' for all resources in the specified apiGroups. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; /// /// Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. "*" means all. /// [YamlMember(Alias = "verbs")] [JsonProperty("verbs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Verbs { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourceSliceListV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceSliceList is a collection of ResourceSlices. /// [KubeListItem("ResourceSlice", "resource.k8s.io/v1alpha3")] [KubeObject("ResourceSliceList", "resource.k8s.io/v1alpha3")] public partial class ResourceSliceListV1Alpha3 : KubeResourceListV1 { /// /// Items is the list of resource ResourceSlices. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ResourceSliceSpecV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceSliceSpec contains the information published by the driver in one ResourceSlice. /// public partial class ResourceSliceSpecV1Alpha3 { /// /// NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node. /// /// This field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available. /// /// Exactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable. /// [YamlMember(Alias = "nodeName")] [JsonProperty("nodeName", NullValueHandling = NullValueHandling.Ignore)] public string NodeName { get; set; } /// /// Pool describes the pool that this ResourceSlice belongs to. /// [YamlMember(Alias = "pool")] [JsonProperty("pool", NullValueHandling = NullValueHandling.Include)] public ResourcePoolV1Alpha3 Pool { get; set; } /// /// Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name. /// /// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable. /// [YamlMember(Alias = "driver")] [JsonProperty("driver", NullValueHandling = NullValueHandling.Include)] public string Driver { get; set; } /// /// NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node. /// /// Must use exactly one term. /// /// Exactly one of NodeName, NodeSelector and AllNodes must be set. /// [YamlMember(Alias = "nodeSelector")] [JsonProperty("nodeSelector", NullValueHandling = NullValueHandling.Ignore)] public NodeSelectorV1 NodeSelector { get; set; } /// /// AllNodes indicates that all nodes have access to the resources in the pool. /// /// Exactly one of NodeName, NodeSelector and AllNodes must be set. /// [YamlMember(Alias = "allNodes")] [JsonProperty("allNodes", NullValueHandling = NullValueHandling.Ignore)] public bool? AllNodes { get; set; } /// /// Devices lists some or all of the devices in this pool. /// /// Must not have more than 128 entries. /// [YamlMember(Alias = "devices")] [JsonProperty("devices", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Devices { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDevices() => Devices.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ResourceSliceV1Alpha3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver. /// /// At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>. /// /// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. /// /// When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. /// /// For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. /// /// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. /// [KubeObject("ResourceSlice", "resource.k8s.io/v1alpha3")] [KubeApi(KubeAction.List, "apis/resource.k8s.io/v1alpha3/resourceslices")] [KubeApi(KubeAction.Create, "apis/resource.k8s.io/v1alpha3/resourceslices")] [KubeApi(KubeAction.Get, "apis/resource.k8s.io/v1alpha3/resourceslices/{name}")] [KubeApi(KubeAction.Patch, "apis/resource.k8s.io/v1alpha3/resourceslices/{name}")] [KubeApi(KubeAction.Delete, "apis/resource.k8s.io/v1alpha3/resourceslices/{name}")] [KubeApi(KubeAction.Update, "apis/resource.k8s.io/v1alpha3/resourceslices/{name}")] [KubeApi(KubeAction.WatchList, "apis/resource.k8s.io/v1alpha3/watch/resourceslices")] [KubeApi(KubeAction.DeleteCollection, "apis/resource.k8s.io/v1alpha3/resourceslices")] [KubeApi(KubeAction.Watch, "apis/resource.k8s.io/v1alpha3/watch/resourceslices/{name}")] public partial class ResourceSliceV1Alpha3 : KubeResourceV1 { /// /// Contains the information published by the driver. /// /// Changing the spec automatically increments the metadata.generation number. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public ResourceSliceSpecV1Alpha3 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ResourceStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class ResourceStatusV1 { /// /// Name of the resource. Must be unique within the pod and match one of the resources from the pod spec. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RoleBindingListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleBindingList is a collection of RoleBindings /// [KubeListItem("RoleBinding", "rbac.authorization.k8s.io/v1")] [KubeObject("RoleBindingList", "rbac.authorization.k8s.io/v1")] public partial class RoleBindingListV1 : KubeResourceListV1 { /// /// Items is a list of RoleBindings /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RoleBindingListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleBindingList is a collection of RoleBindings /// [KubeListItem("RoleBinding", "rbac.authorization.k8s.io/v1alpha1")] [KubeObject("RoleBindingList", "rbac.authorization.k8s.io/v1alpha1")] public partial class RoleBindingListV1Alpha1 : KubeResourceListV1 { /// /// Items is a list of RoleBindings /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RoleBindingListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleBindingList is a collection of RoleBindings /// [KubeListItem("RoleBinding", "rbac.authorization.k8s.io/v1beta1")] [KubeObject("RoleBindingList", "rbac.authorization.k8s.io/v1beta1")] public partial class RoleBindingListV1Beta1 : KubeResourceListV1 { /// /// Items is a list of RoleBindings /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RoleBindingV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. /// [KubeObject("RoleBinding", "rbac.authorization.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1/rolebindings")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1/watch/rolebindings")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}")] public partial class RoleBindingV1 : KubeResourceV1 { /// /// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable. /// [YamlMember(Alias = "roleRef")] [JsonProperty("roleRef", NullValueHandling = NullValueHandling.Include)] public RoleRefV1 RoleRef { get; set; } /// /// Subjects holds references to the objects the role applies to. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSubjects() => Subjects.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RoleBindingV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. /// [KubeObject("RoleBinding", "rbac.authorization.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1alpha1/rolebindings")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1alpha1/watch/rolebindings")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings/{name}")] public partial class RoleBindingV1Alpha1 : KubeResourceV1 { /// /// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. /// [YamlMember(Alias = "roleRef")] [JsonProperty("roleRef", NullValueHandling = NullValueHandling.Include)] public RoleRefV1Alpha1 RoleRef { get; set; } /// /// Subjects holds references to the objects the role applies to. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSubjects() => Subjects.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RoleBindingV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. /// [KubeObject("RoleBinding", "rbac.authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1beta1/rolebindings")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}")] public partial class RoleBindingV1Beta1 : KubeResourceV1 { /// /// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. /// [YamlMember(Alias = "roleRef")] [JsonProperty("roleRef", NullValueHandling = NullValueHandling.Include)] public RoleRefV1Beta1 RoleRef { get; set; } /// /// Subjects holds references to the objects the role applies to. /// [YamlMember(Alias = "subjects")] [JsonProperty("subjects", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Subjects { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSubjects() => Subjects.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RoleListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleList is a collection of Roles /// [KubeListItem("Role", "rbac.authorization.k8s.io/v1")] [KubeObject("RoleList", "rbac.authorization.k8s.io/v1")] public partial class RoleListV1 : KubeResourceListV1 { /// /// Items is a list of Roles /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RoleListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleList is a collection of Roles /// [KubeListItem("Role", "rbac.authorization.k8s.io/v1alpha1")] [KubeObject("RoleList", "rbac.authorization.k8s.io/v1alpha1")] public partial class RoleListV1Alpha1 : KubeResourceListV1 { /// /// Items is a list of Roles /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RoleListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleList is a collection of Roles /// [KubeListItem("Role", "rbac.authorization.k8s.io/v1beta1")] [KubeObject("RoleList", "rbac.authorization.k8s.io/v1beta1")] public partial class RoleListV1Beta1 : KubeResourceListV1 { /// /// Items is a list of Roles /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RoleRefV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleRef contains information that points to the role being used /// public partial class RoleRefV1 { /// /// Kind is the type of resource being referenced /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// Name is the name of resource being referenced /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// APIGroup is the group for the resource being referenced /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Include)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RoleRefV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleRef contains information that points to the role being used /// public partial class RoleRefV1Alpha1 { /// /// Kind is the type of resource being referenced /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// Name is the name of resource being referenced /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// APIGroup is the group for the resource being referenced /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Include)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RoleRefV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RoleRef contains information that points to the role being used /// public partial class RoleRefV1Beta1 { /// /// Kind is the type of resource being referenced /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// Name is the name of resource being referenced /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// APIGroup is the group for the resource being referenced /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Include)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RoleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. /// [KubeObject("Role", "rbac.authorization.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1/roles")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1/watch/roles")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}")] public partial class RoleV1 : KubeResourceV1 { /// /// Rules holds all the PolicyRules for this Role /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RoleV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. /// [KubeObject("Role", "rbac.authorization.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1alpha1/roles")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1alpha1/watch/roles")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles/{name}")] public partial class RoleV1Alpha1 : KubeResourceV1 { /// /// Rules holds all the PolicyRules for this Role /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RoleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. /// [KubeObject("Role", "rbac.authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1beta1/roles")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1beta1/watch/roles")] [KubeApi(KubeAction.List, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Create, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Get, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Patch, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Delete, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.Update, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}")] [KubeApi(KubeAction.WatchList, "apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles")] [KubeApi(KubeAction.DeleteCollection, "apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles")] [KubeApi(KubeAction.Watch, "apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}")] public partial class RoleV1Beta1 : KubeResourceV1 { /// /// Rules holds all the PolicyRules for this Role /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RollbackConfigV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED. /// public partial class RollbackConfigV1Beta1 { /// /// The revision to rollback to. If set to 0, rollback to the last revision. /// [YamlMember(Alias = "revision")] [JsonProperty("revision", NullValueHandling = NullValueHandling.Ignore)] public long? Revision { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateDaemonSetV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Spec to control the desired behavior of daemon set rolling update. /// public partial class RollingUpdateDaemonSetV1 { /// /// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. /// [YamlMember(Alias = "maxSurge")] [JsonProperty("maxSurge", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxSurge { get; set; } /// /// The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateDaemonSetV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Spec to control the desired behavior of daemon set rolling update. /// public partial class RollingUpdateDaemonSetV1Beta1 { /// /// The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateDaemonSetV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Spec to control the desired behavior of daemon set rolling update. /// public partial class RollingUpdateDaemonSetV1Beta2 { /// /// The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateDeploymentV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Spec to control the desired behavior of rolling update. /// public partial class RollingUpdateDeploymentV1 { /// /// The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods. /// [YamlMember(Alias = "maxSurge")] [JsonProperty("maxSurge", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxSurge { get; set; } /// /// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods. /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateDeploymentV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Spec to control the desired behavior of rolling update. /// public partial class RollingUpdateDeploymentV1Beta1 { /// /// The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods. /// [YamlMember(Alias = "maxSurge")] [JsonProperty("maxSurge", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxSurge { get; set; } /// /// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods. /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateDeploymentV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Spec to control the desired behavior of rolling update. /// public partial class RollingUpdateDeploymentV1Beta2 { /// /// The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods. /// [YamlMember(Alias = "maxSurge")] [JsonProperty("maxSurge", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxSurge { get; set; } /// /// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods. /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateStatefulSetStrategyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. /// public partial class RollingUpdateStatefulSetStrategyV1 { /// /// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. /// [YamlMember(Alias = "maxUnavailable")] [JsonProperty("maxUnavailable", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 MaxUnavailable { get; set; } /// /// Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0. /// [YamlMember(Alias = "partition")] [JsonProperty("partition", NullValueHandling = NullValueHandling.Ignore)] public int? Partition { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateStatefulSetStrategyV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. /// public partial class RollingUpdateStatefulSetStrategyV1Beta1 { /// /// Partition indicates the ordinal at which the StatefulSet should be partitioned. /// [YamlMember(Alias = "partition")] [JsonProperty("partition", NullValueHandling = NullValueHandling.Ignore)] public int? Partition { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RollingUpdateStatefulSetStrategyV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. /// public partial class RollingUpdateStatefulSetStrategyV1Beta2 { /// /// Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0. /// [YamlMember(Alias = "partition")] [JsonProperty("partition", NullValueHandling = NullValueHandling.Ignore)] public int? Partition { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/RuleV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid. /// public partial class RuleV1Alpha1 { /// /// APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiVersions")] [JsonProperty("apiVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0; /// /// 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. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RuleWithOperationsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid. /// public partial class RuleWithOperationsV1 { /// /// 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 "*". /// [YamlMember(Alias = "scope")] [JsonProperty("scope", NullValueHandling = NullValueHandling.Ignore)] public string Scope { get; set; } /// /// APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiVersions")] [JsonProperty("apiVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0; /// /// 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. /// [YamlMember(Alias = "operations")] [JsonProperty("operations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Operations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOperations() => Operations.Count > 0; /// /// 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. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RuleWithOperationsV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid. /// public partial class RuleWithOperationsV1Beta1 { /// /// APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiGroups")] [JsonProperty("apiGroups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiGroups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0; /// /// APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "apiVersions")] [JsonProperty("apiVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ApiVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0; /// /// Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required. /// [YamlMember(Alias = "operations")] [JsonProperty("operations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Operations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeOperations() => Operations.Count > 0; /// /// 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. /// [YamlMember(Alias = "resources")] [JsonProperty("resources", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Resources { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeResources() => Resources.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RunAsUserStrategyOptionsV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead. /// public partial class RunAsUserStrategyOptionsV1Beta1 { /// /// rule is the strategy that will dictate the allowable RunAsUser values that may be set. /// [YamlMember(Alias = "rule")] [JsonProperty("rule", NullValueHandling = NullValueHandling.Include)] public string Rule { get; set; } /// /// ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs. /// [YamlMember(Alias = "ranges")] [JsonProperty("ranges", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ranges { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRanges() => Ranges.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/RuntimeClassListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RuntimeClassList is a list of RuntimeClass objects. /// [KubeListItem("RuntimeClass", "node.k8s.io/v1")] [KubeObject("RuntimeClassList", "node.k8s.io/v1")] public partial class RuntimeClassListV1 : KubeResourceListV1 { /// /// items is a list of schema objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/RuntimeClassV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/ /// [KubeObject("RuntimeClass", "node.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/node.k8s.io/v1/runtimeclasses")] [KubeApi(KubeAction.Create, "apis/node.k8s.io/v1/runtimeclasses")] [KubeApi(KubeAction.Get, "apis/node.k8s.io/v1/runtimeclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/node.k8s.io/v1/runtimeclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/node.k8s.io/v1/runtimeclasses/{name}")] [KubeApi(KubeAction.Update, "apis/node.k8s.io/v1/runtimeclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/node.k8s.io/v1/watch/runtimeclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/node.k8s.io/v1/runtimeclasses")] [KubeApi(KubeAction.Watch, "apis/node.k8s.io/v1/watch/runtimeclasses/{name}")] public partial class RuntimeClassV1 : KubeResourceV1 { /// /// overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see /// https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/ /// [YamlMember(Alias = "overhead")] [JsonProperty("overhead", NullValueHandling = NullValueHandling.Ignore)] public OverheadV1 Overhead { get; set; } /// /// scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes. /// [YamlMember(Alias = "scheduling")] [JsonProperty("scheduling", NullValueHandling = NullValueHandling.Ignore)] public SchedulingV1 Scheduling { get; set; } /// /// handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called "runc" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable. /// [YamlMember(Alias = "handler")] [JsonProperty("handler", NullValueHandling = NullValueHandling.Include)] public string Handler { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SELinuxOptionsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SELinuxOptions are the labels to be applied to the container /// public partial class SELinuxOptionsV1 { /// /// Role is a SELinux role label that applies to the container. /// [YamlMember(Alias = "role")] [JsonProperty("role", NullValueHandling = NullValueHandling.Ignore)] public string Role { get; set; } /// /// Type is a SELinux type label that applies to the container. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// Level is SELinux level label that applies to the container. /// [YamlMember(Alias = "level")] [JsonProperty("level", NullValueHandling = NullValueHandling.Ignore)] public string Level { get; set; } /// /// User is a SELinux user label that applies to the container. /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SELinuxStrategyOptionsV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead. /// public partial class SELinuxStrategyOptionsV1Beta1 { /// /// rule is the strategy that will dictate the allowable labels that may be set. /// [YamlMember(Alias = "rule")] [JsonProperty("rule", NullValueHandling = NullValueHandling.Include)] public string Rule { get; set; } /// /// seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ /// [YamlMember(Alias = "seLinuxOptions")] [JsonProperty("seLinuxOptions", NullValueHandling = NullValueHandling.Ignore)] public SELinuxOptionsV1 SeLinuxOptions { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleIOPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume /// public partial class ScaleIOPersistentVolumeSourceV1 { /// /// sslEnabled is the flag to enable/disable SSL communication with Gateway, default false /// [YamlMember(Alias = "sslEnabled")] [JsonProperty("sslEnabled", NullValueHandling = NullValueHandling.Ignore)] public bool? SslEnabled { get; set; } /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs" /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. /// [YamlMember(Alias = "storageMode")] [JsonProperty("storageMode", NullValueHandling = NullValueHandling.Ignore)] public string StorageMode { get; set; } /// /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. /// [YamlMember(Alias = "volumeName")] [JsonProperty("volumeName", NullValueHandling = NullValueHandling.Ignore)] public string VolumeName { get; set; } /// /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Include)] public SecretReferenceV1 SecretRef { get; set; } /// /// storagePool is the ScaleIO Storage Pool associated with the protection domain. /// [YamlMember(Alias = "storagePool")] [JsonProperty("storagePool", NullValueHandling = NullValueHandling.Ignore)] public string StoragePool { get; set; } /// /// system is the name of the storage system as configured in ScaleIO. /// [YamlMember(Alias = "system")] [JsonProperty("system", NullValueHandling = NullValueHandling.Include)] public string System { get; set; } /// /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. /// [YamlMember(Alias = "protectionDomain")] [JsonProperty("protectionDomain", NullValueHandling = NullValueHandling.Ignore)] public string ProtectionDomain { get; set; } /// /// gateway is the host address of the ScaleIO API Gateway. /// [YamlMember(Alias = "gateway")] [JsonProperty("gateway", NullValueHandling = NullValueHandling.Include)] public string Gateway { get; set; } /// /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleIOVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ScaleIOVolumeSource represents a persistent ScaleIO volume /// public partial class ScaleIOVolumeSourceV1 { /// /// sslEnabled Flag enable/disable SSL communication with Gateway, default false /// [YamlMember(Alias = "sslEnabled")] [JsonProperty("sslEnabled", NullValueHandling = NullValueHandling.Ignore)] public bool? SslEnabled { get; set; } /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. /// [YamlMember(Alias = "storageMode")] [JsonProperty("storageMode", NullValueHandling = NullValueHandling.Ignore)] public string StorageMode { get; set; } /// /// volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. /// [YamlMember(Alias = "volumeName")] [JsonProperty("volumeName", NullValueHandling = NullValueHandling.Ignore)] public string VolumeName { get; set; } /// /// secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Include)] public LocalObjectReferenceV1 SecretRef { get; set; } /// /// storagePool is the ScaleIO Storage Pool associated with the protection domain. /// [YamlMember(Alias = "storagePool")] [JsonProperty("storagePool", NullValueHandling = NullValueHandling.Ignore)] public string StoragePool { get; set; } /// /// system is the name of the storage system as configured in ScaleIO. /// [YamlMember(Alias = "system")] [JsonProperty("system", NullValueHandling = NullValueHandling.Include)] public string System { get; set; } /// /// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. /// [YamlMember(Alias = "protectionDomain")] [JsonProperty("protectionDomain", NullValueHandling = NullValueHandling.Ignore)] public string ProtectionDomain { get; set; } /// /// gateway is the host address of the ScaleIO API Gateway. /// [YamlMember(Alias = "gateway")] [JsonProperty("gateway", NullValueHandling = NullValueHandling.Include)] public string Gateway { get; set; } /// /// readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ScaleSpec describes the attributes of a scale subresource. /// public partial class ScaleSpecV1 { /// /// replicas is the desired number of instances for the scaled object. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// describes the attributes of a scale subresource /// public partial class ScaleSpecV1Beta1 { /// /// desired number of instances for the scaled object. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleSpecV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ScaleSpec describes the attributes of a scale subresource /// public partial class ScaleSpecV1Beta2 { /// /// desired number of instances for the scaled object. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ScaleStatus represents the current status of a scale subresource. /// public partial class ScaleStatusV1 { /// /// selector is the label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public string Selector { get; set; } /// /// replicas is the actual number of observed instances of the scaled object. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// represents the current status of a scale subresource. /// public partial class ScaleStatusV1Beta1 { /// /// label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Selector { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSelector() => Selector.Count > 0; /// /// label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "targetSelector")] [JsonProperty("targetSelector", NullValueHandling = NullValueHandling.Ignore)] public string TargetSelector { get; set; } /// /// actual number of observed instances of the scaled object. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleStatusV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ScaleStatus represents the current status of a scale subresource. /// public partial class ScaleStatusV1Beta2 { /// /// label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Selector { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSelector() => Selector.Count > 0; /// /// label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "targetSelector")] [JsonProperty("targetSelector", NullValueHandling = NullValueHandling.Ignore)] public string TargetSelector { get; set; } /// /// actual number of observed instances of the scaled object. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Scale represents a scaling request for a resource. /// [KubeObject("Scale", "autoscaling/v1")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale")] public partial class ScaleV1 : KubeResourceV1 { /// /// spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ScaleSpecV1 Spec { get; set; } /// /// status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ScaleStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Scale represents a scaling request for a resource. /// [KubeObject("Scale", "apps/v1beta1")] [KubeApi(KubeAction.Get, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Get, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale")] public partial class ScaleV1Beta1 : KubeResourceV1 { /// /// defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ScaleSpecV1Beta1 Spec { get; set; } /// /// current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ScaleStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ScaleV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Scale represents a scaling request for a resource. /// [KubeObject("Scale", "apps/v1beta2")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale")] public partial class ScaleV1Beta2 : KubeResourceV1 { /// /// defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ScaleSpecV1Beta2 Spec { get; set; } /// /// current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ScaleStatusV1Beta2 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SchedulingV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass. /// public partial class SchedulingV1 { /// /// nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission. /// [YamlMember(Alias = "nodeSelector")] [JsonProperty("nodeSelector", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary NodeSelector { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeNodeSelector() => NodeSelector.Count > 0; /// /// tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass. /// [YamlMember(Alias = "tolerations")] [JsonProperty("tolerations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Tolerations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeTolerations() => Tolerations.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ScopeSelectorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements. /// public partial class ScopeSelectorV1 { /// /// A list of scope selector requirements by scope of the resources. /// [YamlMember(Alias = "matchExpressions")] [JsonProperty("matchExpressions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchExpressions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchExpressions() => MatchExpressions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ScopedResourceSelectorRequirementV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values. /// public partial class ScopedResourceSelectorRequirementV1 { /// /// The name of the scope that the selector applies to. /// [YamlMember(Alias = "scopeName")] [JsonProperty("scopeName", NullValueHandling = NullValueHandling.Include)] public string ScopeName { get; set; } /// /// Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. /// [YamlMember(Alias = "operator")] [JsonProperty("operator", NullValueHandling = NullValueHandling.Include)] public string Operator { get; set; } /// /// An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. /// [YamlMember(Alias = "values")] [JsonProperty("values", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Values { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValues() => Values.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/SeccompProfileV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. /// public partial class SeccompProfileV1 { /// /// localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is "Localhost". Must NOT be set for any other type. /// [YamlMember(Alias = "localhostProfile")] [JsonProperty("localhostProfile", NullValueHandling = NullValueHandling.Ignore)] public string LocalhostProfile { get; set; } /// /// type indicates which kind of seccomp profile will be applied. Valid options are: /// /// Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SecretEnvSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SecretEnvSource selects a Secret to populate the environment variables with. /// /// The contents of the target Secret's Data field will represent the key-value pairs as environment variables. /// public partial class SecretEnvSourceV1 { /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Specify whether the Secret must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SecretKeySelectorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SecretKeySelector selects a key of a Secret. /// public partial class SecretKeySelectorV1 { /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Specify whether the Secret or its key must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } /// /// The key of the secret to select from. Must be a valid secret key. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SecretListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SecretList is a list of Secret. /// [KubeListItem("Secret", "v1")] [KubeObject("SecretList", "v1")] public partial class SecretListV1 : KubeResourceListV1 { /// /// Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/SecretProjectionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Adapts a secret into a projected volume. /// /// The contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode. /// [KubeListItem("KeyToPath", "v1")] public partial class SecretProjectionV1 { /// /// 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 /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// optional field specify whether the Secret or its key must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } /// /// 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 '..'. /// [YamlMember(Alias = "items")] [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Items { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeItems() => Items.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/SecretReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace /// public partial class SecretReferenceV1 { /// /// name is unique within a namespace to reference a secret resource. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// namespace defines the space within which the secret name must be unique. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SecretV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes. /// [KubeObject("Secret", "v1")] [KubeApi(KubeAction.List, "api/v1/secrets")] [KubeApi(KubeAction.WatchList, "api/v1/watch/secrets")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/secrets")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/secrets")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/secrets/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/secrets/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/secrets/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/secrets/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/secrets")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/secrets")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/secrets/{name}")] public partial class SecretV1 : KubeResourceV1 { /// /// Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4 /// [YamlMember(Alias = "data")] [JsonProperty("data", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Data { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeData() => Data.Count > 0; /// /// stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API. /// [YamlMember(Alias = "stringData")] [JsonProperty("stringData", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary StringData { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeStringData() => StringData.Count > 0; /// /// Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. /// [YamlMember(Alias = "immutable")] [JsonProperty("immutable", NullValueHandling = NullValueHandling.Ignore)] public bool? Immutable { get; set; } /// /// Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SecretVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Adapts a Secret into a volume. /// /// The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling. /// [KubeListItem("KeyToPath", "v1")] public partial class SecretVolumeSourceV1 { /// /// 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. /// [YamlMember(Alias = "defaultMode")] [JsonProperty("defaultMode", NullValueHandling = NullValueHandling.Ignore)] public int? DefaultMode { get; set; } /// /// secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret /// [YamlMember(Alias = "secretName")] [JsonProperty("secretName", NullValueHandling = NullValueHandling.Ignore)] public string SecretName { get; set; } /// /// optional field specify whether the Secret or its keys must be defined /// [YamlMember(Alias = "optional")] [JsonProperty("optional", NullValueHandling = NullValueHandling.Ignore)] public bool? Optional { get; set; } /// /// 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 '..'. /// [YamlMember(Alias = "items")] [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Items { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeItems() => Items.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/SecurityContextV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. /// public partial class SecurityContextV1 { /// /// 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. /// [YamlMember(Alias = "privileged")] [JsonProperty("privileged", NullValueHandling = NullValueHandling.Ignore)] public bool? Privileged { get; set; } /// /// 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. /// [YamlMember(Alias = "appArmorProfile")] [JsonProperty("appArmorProfile", NullValueHandling = NullValueHandling.Ignore)] public AppArmorProfileV1 AppArmorProfile { get; set; } /// /// The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "seccompProfile")] [JsonProperty("seccompProfile", NullValueHandling = NullValueHandling.Ignore)] public SeccompProfileV1 SeccompProfile { get; set; } /// /// Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "readOnlyRootFilesystem")] [JsonProperty("readOnlyRootFilesystem", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnlyRootFilesystem { get; set; } /// /// 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. /// [YamlMember(Alias = "allowPrivilegeEscalation")] [JsonProperty("allowPrivilegeEscalation", NullValueHandling = NullValueHandling.Ignore)] public bool? AllowPrivilegeEscalation { get; set; } /// /// The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "runAsGroup")] [JsonProperty("runAsGroup", NullValueHandling = NullValueHandling.Ignore)] public long? RunAsGroup { get; set; } /// /// The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "runAsUser")] [JsonProperty("runAsUser", NullValueHandling = NullValueHandling.Ignore)] public long? RunAsUser { get; set; } /// /// 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. /// [YamlMember(Alias = "capabilities")] [JsonProperty("capabilities", NullValueHandling = NullValueHandling.Ignore)] public CapabilitiesV1 Capabilities { get; set; } /// /// The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. /// [YamlMember(Alias = "seLinuxOptions")] [JsonProperty("seLinuxOptions", NullValueHandling = NullValueHandling.Ignore)] public SELinuxOptionsV1 SeLinuxOptions { get; set; } /// /// The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. /// [YamlMember(Alias = "windowsOptions")] [JsonProperty("windowsOptions", NullValueHandling = NullValueHandling.Ignore)] public WindowsSecurityContextOptionsV1 WindowsOptions { get; set; } /// /// procMount denotes the type of proc mount to use for the containers. The default value is Default 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. /// [YamlMember(Alias = "procMount")] [JsonProperty("procMount", NullValueHandling = NullValueHandling.Ignore)] public string ProcMount { get; set; } /// /// Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. /// [YamlMember(Alias = "runAsNonRoot")] [JsonProperty("runAsNonRoot", NullValueHandling = NullValueHandling.Ignore)] public bool? RunAsNonRoot { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelectableFieldV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelectableField specifies the JSON path of a field that may be used with field selectors. /// public partial class SelectableFieldV1 { /// /// 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. /// [YamlMember(Alias = "jsonPath")] [JsonProperty("jsonPath", NullValueHandling = NullValueHandling.Include)] public string JsonPath { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectAccessReviewSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set /// public partial class SelfSubjectAccessReviewSpecV1 { /// /// NonResourceAttributes describes information for a non-resource access request /// [YamlMember(Alias = "nonResourceAttributes")] [JsonProperty("nonResourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public NonResourceAttributesV1 NonResourceAttributes { get; set; } /// /// ResourceAuthorizationAttributes describes information for a resource access request /// [YamlMember(Alias = "resourceAttributes")] [JsonProperty("resourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public ResourceAttributesV1 ResourceAttributes { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectAccessReviewSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set /// public partial class SelfSubjectAccessReviewSpecV1Beta1 { /// /// NonResourceAttributes describes information for a non-resource access request /// [YamlMember(Alias = "nonResourceAttributes")] [JsonProperty("nonResourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public NonResourceAttributesV1Beta1 NonResourceAttributes { get; set; } /// /// ResourceAuthorizationAttributes describes information for a resource access request /// [YamlMember(Alias = "resourceAttributes")] [JsonProperty("resourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public ResourceAttributesV1Beta1 ResourceAttributes { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectAccessReviewV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means "in all namespaces". Self is a special case, because users should always be able to check whether they can perform an action /// [KubeObject("SelfSubjectAccessReview", "authorization.k8s.io/v1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1/selfsubjectaccessreviews")] public partial class SelfSubjectAccessReviewV1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated. user and groups must be empty /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SelfSubjectAccessReviewSpecV1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request is allowed or not /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectAccessReviewStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectAccessReviewV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means "in all namespaces". Self is a special case, because users should always be able to check whether they can perform an action /// [KubeObject("SelfSubjectAccessReview", "authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews")] public partial class SelfSubjectAccessReviewV1Beta1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated. user and groups must be empty /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SelfSubjectAccessReviewSpecV1Beta1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request is allowed or not /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectAccessReviewStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectReviewStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user. /// public partial class SelfSubjectReviewStatusV1 { /// /// User attributes of the user making this request. /// [YamlMember(Alias = "userInfo")] [JsonProperty("userInfo", NullValueHandling = NullValueHandling.Ignore)] public UserInfoV1 UserInfo { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectReviewStatusV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user. /// public partial class SelfSubjectReviewStatusV1Alpha1 { /// /// User attributes of the user making this request. /// [YamlMember(Alias = "userInfo")] [JsonProperty("userInfo", NullValueHandling = NullValueHandling.Ignore)] public UserInfoV1 UserInfo { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectReviewStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user. /// public partial class SelfSubjectReviewStatusV1Beta1 { /// /// User attributes of the user making this request. /// [YamlMember(Alias = "userInfo")] [JsonProperty("userInfo", NullValueHandling = NullValueHandling.Ignore)] public UserInfoV1 UserInfo { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectReviewV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. /// [KubeObject("SelfSubjectReview", "authentication.k8s.io/v1")] [KubeApi(KubeAction.Create, "apis/authentication.k8s.io/v1/selfsubjectreviews")] public partial class SelfSubjectReviewV1 : KubeResourceV1 { /// /// Status is filled in by the server with the user attributes. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SelfSubjectReviewStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectReviewV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. /// [KubeObject("SelfSubjectReview", "authentication.k8s.io/v1alpha1")] [KubeApi(KubeAction.Create, "apis/authentication.k8s.io/v1alpha1/selfsubjectreviews")] public partial class SelfSubjectReviewV1Alpha1 : KubeResourceV1 { /// /// Status is filled in by the server with the user attributes. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SelfSubjectReviewStatusV1Alpha1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectReviewV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase. /// [KubeObject("SelfSubjectReview", "authentication.k8s.io/v1beta1")] [KubeApi(KubeAction.Create, "apis/authentication.k8s.io/v1beta1/selfsubjectreviews")] public partial class SelfSubjectReviewV1Beta1 : KubeResourceV1 { /// /// Status is filled in by the server with the user attributes. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SelfSubjectReviewStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectRulesReviewSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview. /// public partial class SelfSubjectRulesReviewSpecV1 { /// /// Namespace to evaluate rules for. Required. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectRulesReviewSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class SelfSubjectRulesReviewSpecV1Beta1 { /// /// Namespace to evaluate rules for. Required. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectRulesReviewV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server. /// [KubeObject("SelfSubjectRulesReview", "authorization.k8s.io/v1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1/selfsubjectrulesreviews")] public partial class SelfSubjectRulesReviewV1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SelfSubjectRulesReviewSpecV1 Spec { get; set; } /// /// Status is filled in by the server and indicates the set of actions a user can perform. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectRulesReviewStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SelfSubjectRulesReviewV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server. /// [KubeObject("SelfSubjectRulesReview", "authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews")] public partial class SelfSubjectRulesReviewV1Beta1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SelfSubjectRulesReviewSpecV1Beta1 Spec { get; set; } /// /// Status is filled in by the server and indicates the set of actions a user can perform. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectRulesReviewStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServerAddressByClientCIDRV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match. /// public partial class ServerAddressByClientCIDRV1 { /// /// The CIDR with which clients can match their IP to figure out the server address that they should use. /// [YamlMember(Alias = "clientCIDR")] [JsonProperty("clientCIDR", NullValueHandling = NullValueHandling.Include)] public string ClientCIDR { get; set; } /// /// Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port. /// [YamlMember(Alias = "serverAddress")] [JsonProperty("serverAddress", NullValueHandling = NullValueHandling.Include)] public string ServerAddress { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServerStorageVersionV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend. /// public partial class ServerStorageVersionV1Alpha1 { /// /// The ID of the reporting API server. /// [YamlMember(Alias = "apiServerID")] [JsonProperty("apiServerID", NullValueHandling = NullValueHandling.Ignore)] public string ApiServerID { get; set; } /// /// The API server encodes the object to this version when persisting it in the backend (e.g., etcd). /// [YamlMember(Alias = "encodingVersion")] [JsonProperty("encodingVersion", NullValueHandling = NullValueHandling.Ignore)] public string EncodingVersion { get; set; } /// /// The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions. /// [YamlMember(Alias = "decodableVersions")] [JsonProperty("decodableVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List DecodableVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeDecodableVersions() => DecodableVersions.Count > 0; /// /// The API server can serve these versions. DecodableVersions must include all ServedVersions. /// [YamlMember(Alias = "servedVersions")] [JsonProperty("servedVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ServedVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeServedVersions() => ServedVersions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ServiceAccountListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceAccountList is a list of ServiceAccount objects /// [KubeListItem("ServiceAccount", "v1")] [KubeObject("ServiceAccountList", "v1")] public partial class ServiceAccountListV1 : KubeResourceListV1 { /// /// List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ServiceAccountSubjectV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceAccountSubject holds detailed information for service-account-kind subject. /// public partial class ServiceAccountSubjectV1 { /// /// `name` is the name of matching ServiceAccount objects, or "*" to match regardless of name. Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// `namespace` is the namespace of matching ServiceAccount objects. Required. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Include)] public string Namespace { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceAccountSubjectV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceAccountSubject holds detailed information for service-account-kind subject. /// public partial class ServiceAccountSubjectV1Beta3 { /// /// `name` is the name of matching ServiceAccount objects, or "*" to match regardless of name. Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// `namespace` is the namespace of matching ServiceAccount objects. Required. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Include)] public string Namespace { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceAccountTokenProjectionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise). /// public partial class ServiceAccountTokenProjectionV1 { /// /// audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. /// [YamlMember(Alias = "audience")] [JsonProperty("audience", NullValueHandling = NullValueHandling.Ignore)] public string Audience { get; set; } /// /// path is the path relative to the mount point of the file to project the token into. /// [YamlMember(Alias = "path")] [JsonProperty("path", NullValueHandling = NullValueHandling.Include)] public string Path { get; set; } /// /// expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. /// [YamlMember(Alias = "expirationSeconds")] [JsonProperty("expirationSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? ExpirationSeconds { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceAccountV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets /// [KubeObject("ServiceAccount", "v1")] [KubeApi(KubeAction.List, "api/v1/serviceaccounts")] [KubeApi(KubeAction.WatchList, "api/v1/watch/serviceaccounts")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/serviceaccounts")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/serviceaccounts")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/serviceaccounts/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/serviceaccounts/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/serviceaccounts/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/serviceaccounts/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/serviceaccounts")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/serviceaccounts")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}")] public partial class ServiceAccountV1 : KubeResourceV1 { /// /// AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level. /// [YamlMember(Alias = "automountServiceAccountToken")] [JsonProperty("automountServiceAccountToken", NullValueHandling = NullValueHandling.Ignore)] public bool? AutomountServiceAccountToken { get; set; } /// /// ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod /// [YamlMember(Alias = "imagePullSecrets")] [JsonProperty("imagePullSecrets", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ImagePullSecrets { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeImagePullSecrets() => ImagePullSecrets.Count > 0; /// /// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a "kubernetes.io/enforce-mountable-secrets" annotation set to "true". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "secrets")] [JsonProperty("secrets", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Secrets { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSecrets() => Secrets.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ServiceBackendPortV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceBackendPort is the service port being referenced. /// public partial class ServiceBackendPortV1 { /// /// name is the name of the port on the Service. This is a mutually exclusive setting with "Number". /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with "Name". /// [YamlMember(Alias = "number")] [JsonProperty("number", NullValueHandling = NullValueHandling.Ignore)] public int? Number { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceCIDRListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceCIDRList contains a list of ServiceCIDR objects. /// [KubeListItem("ServiceCIDR", "networking.k8s.io/v1beta1")] [KubeObject("ServiceCIDRList", "networking.k8s.io/v1beta1")] public partial class ServiceCIDRListV1Beta1 : KubeResourceListV1 { /// /// items is the list of ServiceCIDRs. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ServiceCIDRSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services. /// public partial class ServiceCIDRSpecV1Beta1 { /// /// CIDRs defines the IP blocks in CIDR notation (e.g. "192.168.0.0/24" or "2001:db8::/64") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable. /// [YamlMember(Alias = "cidrs")] [JsonProperty("cidrs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Cidrs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCidrs() => Cidrs.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ServiceCIDRStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceCIDRStatus describes the current state of the ServiceCIDR. /// public partial class ServiceCIDRStatusV1Beta1 { /// /// conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ServiceCIDRV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects. /// [KubeObject("ServiceCIDR", "networking.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/networking.k8s.io/v1beta1/servicecidrs")] [KubeApi(KubeAction.Create, "apis/networking.k8s.io/v1beta1/servicecidrs")] [KubeApi(KubeAction.Get, "apis/networking.k8s.io/v1beta1/servicecidrs/{name}")] [KubeApi(KubeAction.Patch, "apis/networking.k8s.io/v1beta1/servicecidrs/{name}")] [KubeApi(KubeAction.Delete, "apis/networking.k8s.io/v1beta1/servicecidrs/{name}")] [KubeApi(KubeAction.Update, "apis/networking.k8s.io/v1beta1/servicecidrs/{name}")] [KubeApi(KubeAction.WatchList, "apis/networking.k8s.io/v1beta1/watch/servicecidrs")] [KubeApi(KubeAction.DeleteCollection, "apis/networking.k8s.io/v1beta1/servicecidrs")] [KubeApi(KubeAction.Get, "apis/networking.k8s.io/v1beta1/servicecidrs/{name}/status")] [KubeApi(KubeAction.Watch, "apis/networking.k8s.io/v1beta1/watch/servicecidrs/{name}")] [KubeApi(KubeAction.Patch, "apis/networking.k8s.io/v1beta1/servicecidrs/{name}/status")] [KubeApi(KubeAction.Update, "apis/networking.k8s.io/v1beta1/servicecidrs/{name}/status")] public partial class ServiceCIDRV1Beta1 : KubeResourceV1 { /// /// spec is the desired state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ServiceCIDRSpecV1Beta1 Spec { get; set; } /// /// status represents the current state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ServiceCIDRStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceList holds a list of services. /// [KubeListItem("Service", "v1")] [KubeObject("ServiceList", "v1")] public partial class ServiceListV1 : KubeResourceListV1 { /// /// List of services /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ServicePortV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServicePort contains information on service's port. /// public partial class ServicePortV1 { /// /// The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either: /// /// * Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). /// /// * Kubernetes-defined prefixed names: /// * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- /// * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455 /// * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 /// /// * Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol. /// [YamlMember(Alias = "appProtocol")] [JsonProperty("appProtocol", NullValueHandling = NullValueHandling.Ignore)] public string AppProtocol { get; set; } /// /// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP. /// [YamlMember(Alias = "protocol")] [JsonProperty("protocol", NullValueHandling = NullValueHandling.Ignore)] public string Protocol { get; set; } /// /// The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport /// [YamlMember(Alias = "nodePort")] [JsonProperty("nodePort", NullValueHandling = NullValueHandling.Ignore)] public int? NodePort { get; set; } /// /// The port that will be exposed by this service. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Include)] public int Port { get; set; } /// /// Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service /// [YamlMember(Alias = "targetPort")] [JsonProperty("targetPort", NullValueHandling = NullValueHandling.Ignore)] public Int32OrStringV1 TargetPort { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceReference holds a reference to Service.legacy.k8s.io /// public partial class ServiceReferenceV1 { /// /// Name is the name of the service /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Namespace is the namespace of the service /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive). /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Ignore)] public int? Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceReferenceV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceReference holds a reference to Service.legacy.k8s.io /// public partial class ServiceReferenceV1Beta1 { /// /// Name is the name of the service /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// Namespace is the namespace of the service /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceSpec describes the attributes that a user creates on a service. /// public partial class ServiceSpecV1 { /// /// clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are "None", empty string (""), or a valid IP address. Setting this to "None" makes a "headless service" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies /// [YamlMember(Alias = "clusterIP")] [JsonProperty("clusterIP", NullValueHandling = NullValueHandling.Ignore)] public string ClusterIP { get; set; } /// /// Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available. /// [YamlMember(Alias = "loadBalancerIP")] [JsonProperty("loadBalancerIP", NullValueHandling = NullValueHandling.Ignore)] public string LoadBalancerIP { get; set; } /// /// 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". /// [YamlMember(Alias = "externalName")] [JsonProperty("externalName", NullValueHandling = NullValueHandling.Ignore)] public string ExternalName { get; set; } /// /// 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 /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } /// /// sessionAffinityConfig contains the configurations of session affinity. /// [YamlMember(Alias = "sessionAffinityConfig")] [JsonProperty("sessionAffinityConfig", NullValueHandling = NullValueHandling.Ignore)] public SessionAffinityConfigV1 SessionAffinityConfig { get; set; } /// /// 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. /// [YamlMember(Alias = "trafficDistribution")] [JsonProperty("trafficDistribution", NullValueHandling = NullValueHandling.Ignore)] public string TrafficDistribution { get; set; } /// /// 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/ /// [YamlMember(Alias = "selector")] [JsonProperty("selector", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Selector { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSelector() => Selector.Count > 0; /// /// allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is "true". It may be set to "false" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type. /// [YamlMember(Alias = "allocateLoadBalancerNodePorts")] [JsonProperty("allocateLoadBalancerNodePorts", NullValueHandling = NullValueHandling.Ignore)] public bool? AllocateLoadBalancerNodePorts { get; set; } /// /// ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are "None", empty string (""), or a valid IP address. Setting this to "None" makes a "headless service" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value. /// /// This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies /// [YamlMember(Alias = "clusterIPs")] [JsonProperty("clusterIPs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ClusterIPs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeClusterIPs() => ClusterIPs.Count > 0; /// /// externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system. /// [YamlMember(Alias = "externalIPs")] [JsonProperty("externalIPs", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ExternalIPs { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExternalIPs() => ExternalIPs.Count > 0; /// /// IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are "IPv4" and "IPv6". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to "headless" services. This field will be wiped when updating a Service to type ExternalName. /// /// This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. /// [YamlMember(Alias = "ipFamilies")] [JsonProperty("ipFamilies", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List IpFamilies { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeIpFamilies() => IpFamilies.Count > 0; /// /// loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or "example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. /// [YamlMember(Alias = "loadBalancerClass")] [JsonProperty("loadBalancerClass", NullValueHandling = NullValueHandling.Ignore)] public string LoadBalancerClass { get; set; } /// /// If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature." More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/ /// [YamlMember(Alias = "loadBalancerSourceRanges")] [JsonProperty("loadBalancerSourceRanges", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List LoadBalancerSourceRanges { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeLoadBalancerSourceRanges() => LoadBalancerSourceRanges.Count > 0; /// /// 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 /// [MergeStrategy(Key = "port")] [YamlMember(Alias = "ports")] [JsonProperty("ports", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ports { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializePorts() => Ports.Count > 0; /// /// publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered "ready" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior. /// [YamlMember(Alias = "publishNotReadyAddresses")] [JsonProperty("publishNotReadyAddresses", NullValueHandling = NullValueHandling.Ignore)] public bool? PublishNotReadyAddresses { get; set; } /// /// healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set. /// [YamlMember(Alias = "healthCheckNodePort")] [JsonProperty("healthCheckNodePort", NullValueHandling = NullValueHandling.Ignore)] public int? HealthCheckNodePort { get; set; } /// /// externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to "Local", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, "Cluster", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get "Cluster" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node. /// [YamlMember(Alias = "externalTrafficPolicy")] [JsonProperty("externalTrafficPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ExternalTrafficPolicy { get; set; } /// /// InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to "Local", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, "Cluster", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). /// [YamlMember(Alias = "internalTrafficPolicy")] [JsonProperty("internalTrafficPolicy", NullValueHandling = NullValueHandling.Ignore)] public string InternalTrafficPolicy { get; set; } /// /// IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName. /// [YamlMember(Alias = "ipFamilyPolicy")] [JsonProperty("ipFamilyPolicy", NullValueHandling = NullValueHandling.Ignore)] public string IpFamilyPolicy { get; set; } /// /// 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 /// [YamlMember(Alias = "sessionAffinity")] [JsonProperty("sessionAffinity", NullValueHandling = NullValueHandling.Ignore)] public string SessionAffinity { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ServiceStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ServiceStatus represents the current status of a service. /// public partial class ServiceStatusV1 { /// /// LoadBalancer contains the current status of the load-balancer, if one is present. /// [YamlMember(Alias = "loadBalancer")] [JsonProperty("loadBalancer", NullValueHandling = NullValueHandling.Ignore)] public LoadBalancerStatusV1 LoadBalancer { get; set; } /// /// Current service state /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ServiceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy. /// [KubeObject("Service", "v1")] [KubeApi(KubeAction.List, "api/v1/services")] [KubeApi(KubeAction.WatchList, "api/v1/watch/services")] [KubeApi(KubeAction.List, "api/v1/namespaces/{namespace}/services")] [KubeApi(KubeAction.Create, "api/v1/namespaces/{namespace}/services")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/services/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/services/{name}")] [KubeApi(KubeAction.Delete, "api/v1/namespaces/{namespace}/services/{name}")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/services/{name}")] [KubeApi(KubeAction.WatchList, "api/v1/watch/namespaces/{namespace}/services")] [KubeApi(KubeAction.DeleteCollection, "api/v1/namespaces/{namespace}/services")] [KubeApi(KubeAction.Get, "api/v1/namespaces/{namespace}/services/{name}/status")] [KubeApi(KubeAction.Watch, "api/v1/watch/namespaces/{namespace}/services/{name}")] [KubeApi(KubeAction.Patch, "api/v1/namespaces/{namespace}/services/{name}/status")] [KubeApi(KubeAction.Update, "api/v1/namespaces/{namespace}/services/{name}/status")] public partial class ServiceV1 : KubeResourceV1 { /// /// Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ServiceSpecV1 Spec { get; set; } /// /// Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ServiceStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SessionAffinityConfigV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SessionAffinityConfig represents the configurations of session affinity. /// public partial class SessionAffinityConfigV1 { /// /// clientIP contains the configurations of Client IP based session affinity. /// [YamlMember(Alias = "clientIP")] [JsonProperty("clientIP", NullValueHandling = NullValueHandling.Ignore)] public ClientIPConfigV1 ClientIP { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SleepActionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SleepAction describes a "sleep" action. /// public partial class SleepActionV1 { /// /// Seconds is the number of seconds to sleep. /// [YamlMember(Alias = "seconds")] [JsonProperty("seconds", NullValueHandling = NullValueHandling.Include)] public long Seconds { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetConditionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetCondition describes the state of a statefulset at a certain point. /// public partial class StatefulSetConditionV1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of statefulset condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetConditionV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetCondition describes the state of a statefulset at a certain point. /// public partial class StatefulSetConditionV1Beta1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of statefulset condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetConditionV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetCondition describes the state of a statefulset at a certain point. /// public partial class StatefulSetConditionV1Beta2 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Type of statefulset condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetList is a collection of StatefulSets. /// [KubeListItem("StatefulSet", "apps/v1")] [KubeObject("StatefulSetList", "apps/v1")] public partial class StatefulSetListV1 : KubeResourceListV1 { /// /// Items is the list of stateful sets. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetList is a collection of StatefulSets. /// [KubeListItem("StatefulSet", "apps/v1beta1")] [KubeObject("StatefulSetList", "apps/v1beta1")] public partial class StatefulSetListV1Beta1 : KubeResourceListV1 { /// /// Description not provided. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetListV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetList is a collection of StatefulSets. /// [KubeListItem("StatefulSet", "apps/v1beta2")] [KubeObject("StatefulSetList", "apps/v1beta2")] public partial class StatefulSetListV1Beta2 : KubeResourceListV1 { /// /// Description not provided. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetOrdinalsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet. /// public partial class StatefulSetOrdinalsV1 { /// /// start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range: /// [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas). /// If unset, defaults to 0. Replica indices will be in the range: /// [0, .spec.replicas). /// [YamlMember(Alias = "start")] [JsonProperty("start", NullValueHandling = NullValueHandling.Ignore)] public int? Start { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetPersistentVolumeClaimRetentionPolicyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates. /// public partial class StatefulSetPersistentVolumeClaimRetentionPolicyV1 { /// /// WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted. /// [YamlMember(Alias = "whenDeleted")] [JsonProperty("whenDeleted", NullValueHandling = NullValueHandling.Ignore)] public string WhenDeleted { get; set; } /// /// WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted. /// [YamlMember(Alias = "whenScaled")] [JsonProperty("whenScaled", NullValueHandling = NullValueHandling.Ignore)] public string WhenScaled { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A StatefulSetSpec is the specification of a StatefulSet. /// public partial class StatefulSetSpecV1 { /// /// serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller. /// [YamlMember(Alias = "serviceName")] [JsonProperty("serviceName", NullValueHandling = NullValueHandling.Include)] public string ServiceName { get; set; } /// /// template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named "web" with index number "3" would be named "web-3". The only allowed template.spec.restartPolicy value is "Always". /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) /// [YamlMember(Alias = "minReadySeconds")] [JsonProperty("minReadySeconds", NullValueHandling = NullValueHandling.Ignore)] public int? MinReadySeconds { get; set; } /// /// ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a "0" index to the first replica and increments the index by one for each additional replica requested. /// [YamlMember(Alias = "ordinals")] [JsonProperty("ordinals", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetOrdinalsV1 Ordinals { get; set; } /// /// replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. /// [YamlMember(Alias = "volumeClaimTemplates")] [JsonProperty("volumeClaimTemplates", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeClaimTemplates { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeClaimTemplates() => VolumeClaimTemplates.Count > 0; /// /// revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta. /// [YamlMember(Alias = "persistentVolumeClaimRetentionPolicy")] [JsonProperty("persistentVolumeClaimRetentionPolicy", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetPersistentVolumeClaimRetentionPolicyV1 PersistentVolumeClaimRetentionPolicy { get; set; } /// /// podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. /// [YamlMember(Alias = "podManagementPolicy")] [JsonProperty("podManagementPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PodManagementPolicy { get; set; } /// /// updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template. /// [YamlMember(Alias = "updateStrategy")] [JsonProperty("updateStrategy", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetUpdateStrategyV1 UpdateStrategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A StatefulSetSpec is the specification of a StatefulSet. /// public partial class StatefulSetSpecV1Beta1 { /// /// serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller. /// [YamlMember(Alias = "serviceName")] [JsonProperty("serviceName", NullValueHandling = NullValueHandling.Include)] public string ServiceName { get; set; } /// /// template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 Selector { get; set; } /// /// replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. /// [YamlMember(Alias = "volumeClaimTemplates")] [JsonProperty("volumeClaimTemplates", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeClaimTemplates { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeClaimTemplates() => VolumeClaimTemplates.Count > 0; /// /// revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. /// [YamlMember(Alias = "podManagementPolicy")] [JsonProperty("podManagementPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PodManagementPolicy { get; set; } /// /// updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template. /// [YamlMember(Alias = "updateStrategy")] [JsonProperty("updateStrategy", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetUpdateStrategyV1Beta1 UpdateStrategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetSpecV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A StatefulSetSpec is the specification of a StatefulSet. /// public partial class StatefulSetSpecV1Beta2 { /// /// serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller. /// [YamlMember(Alias = "serviceName")] [JsonProperty("serviceName", NullValueHandling = NullValueHandling.Include)] public string ServiceName { get; set; } /// /// template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. /// [YamlMember(Alias = "template")] [JsonProperty("template", NullValueHandling = NullValueHandling.Include)] public PodTemplateSpecV1 Template { get; set; } /// /// selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors /// [YamlMember(Alias = "selector")] [JsonProperty("selector", NullValueHandling = NullValueHandling.Include)] public LabelSelectorV1 Selector { get; set; } /// /// replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Ignore)] public int? Replicas { get; set; } /// /// volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. /// [YamlMember(Alias = "volumeClaimTemplates")] [JsonProperty("volumeClaimTemplates", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List VolumeClaimTemplates { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVolumeClaimTemplates() => VolumeClaimTemplates.Count > 0; /// /// revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. /// [YamlMember(Alias = "revisionHistoryLimit")] [JsonProperty("revisionHistoryLimit", NullValueHandling = NullValueHandling.Ignore)] public int? RevisionHistoryLimit { get; set; } /// /// podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. /// [YamlMember(Alias = "podManagementPolicy")] [JsonProperty("podManagementPolicy", NullValueHandling = NullValueHandling.Ignore)] public string PodManagementPolicy { get; set; } /// /// updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template. /// [YamlMember(Alias = "updateStrategy")] [JsonProperty("updateStrategy", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetUpdateStrategyV1Beta2 UpdateStrategy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetStatus represents the current state of a StatefulSet. /// public partial class StatefulSetStatusV1 { /// /// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas). /// [YamlMember(Alias = "currentRevision")] [JsonProperty("currentRevision", NullValueHandling = NullValueHandling.Ignore)] public string CurrentRevision { get; set; } /// /// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) /// [YamlMember(Alias = "updateRevision")] [JsonProperty("updateRevision", NullValueHandling = NullValueHandling.Ignore)] public string UpdateRevision { get; set; } /// /// Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset. /// [YamlMember(Alias = "availableReplicas")] [JsonProperty("availableReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? AvailableReplicas { get; set; } /// /// Represents the latest available observations of a statefulset's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision. /// [YamlMember(Alias = "currentReplicas")] [JsonProperty("currentReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? CurrentReplicas { get; set; } /// /// readyReplicas is the number of pods created for this StatefulSet with a Ready Condition. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// replicas is the number of Pods created by the StatefulSet controller. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } /// /// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision. /// [YamlMember(Alias = "updatedReplicas")] [JsonProperty("updatedReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedReplicas { get; set; } /// /// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetStatus represents the current state of a StatefulSet. /// public partial class StatefulSetStatusV1Beta1 { /// /// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas). /// [YamlMember(Alias = "currentRevision")] [JsonProperty("currentRevision", NullValueHandling = NullValueHandling.Ignore)] public string CurrentRevision { get; set; } /// /// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) /// [YamlMember(Alias = "updateRevision")] [JsonProperty("updateRevision", NullValueHandling = NullValueHandling.Ignore)] public string UpdateRevision { get; set; } /// /// Represents the latest available observations of a statefulset's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision. /// [YamlMember(Alias = "currentReplicas")] [JsonProperty("currentReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? CurrentReplicas { get; set; } /// /// readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// replicas is the number of Pods created by the StatefulSet controller. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } /// /// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision. /// [YamlMember(Alias = "updatedReplicas")] [JsonProperty("updatedReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedReplicas { get; set; } /// /// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetStatusV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetStatus represents the current state of a StatefulSet. /// public partial class StatefulSetStatusV1Beta2 { /// /// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas). /// [YamlMember(Alias = "currentRevision")] [JsonProperty("currentRevision", NullValueHandling = NullValueHandling.Ignore)] public string CurrentRevision { get; set; } /// /// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) /// [YamlMember(Alias = "updateRevision")] [JsonProperty("updateRevision", NullValueHandling = NullValueHandling.Ignore)] public string UpdateRevision { get; set; } /// /// Represents the latest available observations of a statefulset's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision. /// [YamlMember(Alias = "currentReplicas")] [JsonProperty("currentReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? CurrentReplicas { get; set; } /// /// readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. /// [YamlMember(Alias = "readyReplicas")] [JsonProperty("readyReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? ReadyReplicas { get; set; } /// /// replicas is the number of Pods created by the StatefulSet controller. /// [YamlMember(Alias = "replicas")] [JsonProperty("replicas", NullValueHandling = NullValueHandling.Include)] public int Replicas { get; set; } /// /// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision. /// [YamlMember(Alias = "updatedReplicas")] [JsonProperty("updatedReplicas", NullValueHandling = NullValueHandling.Ignore)] public int? UpdatedReplicas { get; set; } /// /// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. /// [YamlMember(Alias = "collisionCount")] [JsonProperty("collisionCount", NullValueHandling = NullValueHandling.Ignore)] public int? CollisionCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetUpdateStrategyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. /// public partial class StatefulSetUpdateStrategyV1 { /// /// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateStatefulSetStrategyV1 RollingUpdate { get; set; } /// /// Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetUpdateStrategyV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. /// public partial class StatefulSetUpdateStrategyV1Beta1 { /// /// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateStatefulSetStrategyV1Beta1 RollingUpdate { get; set; } /// /// Type indicates the type of the StatefulSetUpdateStrategy. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetUpdateStrategyV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. /// public partial class StatefulSetUpdateStrategyV1Beta2 { /// /// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. /// [YamlMember(Alias = "rollingUpdate")] [JsonProperty("rollingUpdate", NullValueHandling = NullValueHandling.Ignore)] public RollingUpdateStatefulSetStrategyV1Beta2 RollingUpdate { get; set; } /// /// Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatefulSet represents a set of pods with consistent identities. Identities are defined as: /// - Network: A single stable DNS and hostname. /// - Storage: As many VolumeClaims as requested. /// /// The StatefulSet guarantees that a given network identity will always map to the same storage identity. /// [KubeObject("StatefulSet", "apps/v1")] [KubeApi(KubeAction.List, "apis/apps/v1/statefulsets")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/statefulsets")] [KubeApi(KubeAction.List, "apis/apps/v1/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Create, "apis/apps/v1/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1/watch/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Get, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status")] public partial class StatefulSetV1 : KubeResourceV1 { /// /// Spec defines the desired identities of pods in this set. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetSpecV1 Spec { get; set; } /// /// Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as: /// - Network: A single stable DNS and hostname. /// - Storage: As many VolumeClaims as requested. /// The StatefulSet guarantees that a given network identity will always map to the same storage identity. /// [KubeObject("StatefulSet", "apps/v1beta1")] [KubeApi(KubeAction.List, "apis/apps/v1beta1/statefulsets")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta1/watch/statefulsets")] [KubeApi(KubeAction.List, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Create, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status")] public partial class StatefulSetV1Beta1 : KubeResourceV1 { /// /// Spec defines the desired identities of pods in this set. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetSpecV1Beta1 Spec { get; set; } /// /// Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatefulSetV1Beta2.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as: /// - Network: A single stable DNS and hostname. /// - Storage: As many VolumeClaims as requested. /// The StatefulSet guarantees that a given network identity will always map to the same storage identity. /// [KubeObject("StatefulSet", "apps/v1beta2")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/statefulsets")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/statefulsets")] [KubeApi(KubeAction.List, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Create, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Delete, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.WatchList, "apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.DeleteCollection, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets")] [KubeApi(KubeAction.Get, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status")] [KubeApi(KubeAction.Watch, "apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}")] [KubeApi(KubeAction.Patch, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status")] [KubeApi(KubeAction.Update, "apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status")] public partial class StatefulSetV1Beta2 : KubeResourceV1 { /// /// Spec defines the desired identities of pods in this set. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetSpecV1Beta2 Spec { get; set; } /// /// Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public StatefulSetStatusV1Beta2 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatusCauseV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered. /// public partial class StatusCauseV1 { /// /// The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional. /// /// Examples: /// "name" - the field "name" on the current resource /// "items[0].name" - the field "name" on the first array entry in "items" /// [YamlMember(Alias = "field")] [JsonProperty("field", NullValueHandling = NullValueHandling.Ignore)] public string Field { get; set; } /// /// A human-readable description of the cause of the error. This field may be presented as-is to a reader. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// A machine-readable description of the cause of the error. If this value is empty there is no information available. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatusDetailsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined. /// public partial class StatusDetailsV1 { /// /// The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Ignore)] public string Kind { get; set; } /// /// UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described). /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } /// /// The group attribute of the resource associated with the status StatusReason. /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public string Group { get; set; } /// /// The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes. /// [YamlMember(Alias = "causes")] [JsonProperty("causes", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Causes { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeCauses() => Causes.Count > 0; /// /// If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action. /// [YamlMember(Alias = "retryAfterSeconds")] [JsonProperty("retryAfterSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? RetryAfterSeconds { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Status is a return value for calls that don't return other objects. /// [KubeObject("Status", "v1")] public partial class StatusV1 : KubeResourceListV1 { /// /// Suggested HTTP return code for this status, 0 if not set. /// [YamlMember(Alias = "code")] [JsonProperty("code", NullValueHandling = NullValueHandling.Ignore)] public int? Code { get; set; } /// /// A human-readable description of the status of this operation. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// 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. /// [YamlMember(Alias = "details")] [JsonProperty("details", NullValueHandling = NullValueHandling.Ignore)] public StatusDetailsV1 Details { get; set; } /// /// Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageClassListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StorageClassList is a collection of storage classes. /// [KubeListItem("StorageClass", "storage.k8s.io/v1")] [KubeObject("StorageClassList", "storage.k8s.io/v1")] public partial class StorageClassListV1 : KubeResourceListV1 { /// /// items is the list of StorageClasses /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/StorageClassListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StorageClassList is a collection of storage classes. /// [KubeListItem("StorageClass", "storage.k8s.io/v1beta1")] [KubeObject("StorageClassList", "storage.k8s.io/v1beta1")] public partial class StorageClassListV1Beta1 : KubeResourceListV1 { /// /// Items is the list of StorageClasses /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/StorageClassV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned. /// /// StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name. /// [KubeObject("StorageClass", "storage.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1/storageclasses")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1/storageclasses")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1/storageclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1/storageclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1/storageclasses/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1/storageclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1/watch/storageclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1/storageclasses")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1/watch/storageclasses/{name}")] public partial class StorageClassV1 : KubeResourceV1 { /// /// volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature. /// [YamlMember(Alias = "volumeBindingMode")] [JsonProperty("volumeBindingMode", NullValueHandling = NullValueHandling.Ignore)] public string VolumeBindingMode { get; set; } /// /// allowVolumeExpansion shows whether the storage class allow volume expand. /// [YamlMember(Alias = "allowVolumeExpansion")] [JsonProperty("allowVolumeExpansion", NullValueHandling = NullValueHandling.Ignore)] public bool? AllowVolumeExpansion { get; set; } /// /// provisioner indicates the type of the provisioner. /// [YamlMember(Alias = "provisioner")] [JsonProperty("provisioner", NullValueHandling = NullValueHandling.Include)] public string Provisioner { get; set; } /// /// allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature. /// [YamlMember(Alias = "allowedTopologies")] [JsonProperty("allowedTopologies", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllowedTopologies { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllowedTopologies() => AllowedTopologies.Count > 0; /// /// mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. ["ro", "soft"]. Not validated - mount of the PVs will simply fail if one is invalid. /// [YamlMember(Alias = "mountOptions")] [JsonProperty("mountOptions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MountOptions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMountOptions() => MountOptions.Count > 0; /// /// parameters holds the parameters for the provisioner that should create volumes of this storage class. /// [YamlMember(Alias = "parameters")] [JsonProperty("parameters", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Parameters { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeParameters() => Parameters.Count > 0; /// /// reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete. /// [YamlMember(Alias = "reclaimPolicy")] [JsonProperty("reclaimPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ReclaimPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageClassV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned. /// /// StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name. /// [KubeObject("StorageClass", "storage.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1beta1/storageclasses")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1beta1/storageclasses")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1beta1/storageclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1beta1/storageclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1beta1/storageclasses/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1beta1/storageclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1beta1/watch/storageclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1beta1/storageclasses")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}")] public partial class StorageClassV1Beta1 : KubeResourceV1 { /// /// VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature. /// [YamlMember(Alias = "volumeBindingMode")] [JsonProperty("volumeBindingMode", NullValueHandling = NullValueHandling.Ignore)] public string VolumeBindingMode { get; set; } /// /// AllowVolumeExpansion shows whether the storage class allow volume expand /// [YamlMember(Alias = "allowVolumeExpansion")] [JsonProperty("allowVolumeExpansion", NullValueHandling = NullValueHandling.Ignore)] public bool? AllowVolumeExpansion { get; set; } /// /// Provisioner indicates the type of the provisioner. /// [YamlMember(Alias = "provisioner")] [JsonProperty("provisioner", NullValueHandling = NullValueHandling.Include)] public string Provisioner { get; set; } /// /// Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature. /// [YamlMember(Alias = "allowedTopologies")] [JsonProperty("allowedTopologies", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AllowedTopologies { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAllowedTopologies() => AllowedTopologies.Count > 0; /// /// Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. ["ro", "soft"]. Not validated - mount of the PVs will simply fail if one is invalid. /// [YamlMember(Alias = "mountOptions")] [JsonProperty("mountOptions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MountOptions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMountOptions() => MountOptions.Count > 0; /// /// Parameters holds the parameters for the provisioner that should create volumes of this storage class. /// [YamlMember(Alias = "parameters")] [JsonProperty("parameters", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Parameters { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeParameters() => Parameters.Count > 0; /// /// Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete. /// [YamlMember(Alias = "reclaimPolicy")] [JsonProperty("reclaimPolicy", NullValueHandling = NullValueHandling.Ignore)] public string ReclaimPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageOSPersistentVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a StorageOS persistent volume resource. /// public partial class StorageOSPersistentVolumeSourceV1 { /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. /// [YamlMember(Alias = "volumeName")] [JsonProperty("volumeName", NullValueHandling = NullValueHandling.Ignore)] public string VolumeName { get; set; } /// /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. /// [YamlMember(Alias = "volumeNamespace")] [JsonProperty("volumeNamespace", NullValueHandling = NullValueHandling.Ignore)] public string VolumeNamespace { get; set; } /// /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public ObjectReferenceV1 SecretRef { get; set; } /// /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageOSVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a StorageOS persistent volume resource. /// public partial class StorageOSVolumeSourceV1 { /// /// fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. /// [YamlMember(Alias = "volumeName")] [JsonProperty("volumeName", NullValueHandling = NullValueHandling.Ignore)] public string VolumeName { get; set; } /// /// volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. /// [YamlMember(Alias = "volumeNamespace")] [JsonProperty("volumeNamespace", NullValueHandling = NullValueHandling.Ignore)] public string VolumeNamespace { get; set; } /// /// secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. /// [YamlMember(Alias = "secretRef")] [JsonProperty("secretRef", NullValueHandling = NullValueHandling.Ignore)] public LocalObjectReferenceV1 SecretRef { get; set; } /// /// readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionConditionV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Describes the state of the storageVersion at a certain point. /// public partial class StorageVersionConditionV1Alpha1 { /// /// Last time the condition transitioned from one status to another. /// [YamlMember(Alias = "lastTransitionTime")] [JsonProperty("lastTransitionTime", NullValueHandling = NullValueHandling.Ignore)] public DateTime? LastTransitionTime { get; set; } /// /// A human readable message indicating details about the transition. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Include)] public string Message { get; set; } /// /// Type of the condition. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// If set, this represents the .metadata.generation that the condition was set based upon. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The reason for the condition's last transition. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Include)] public string Reason { get; set; } /// /// Status of the condition, one of True, False, Unknown. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public string Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A list of StorageVersions. /// [KubeListItem("StorageVersion", "internal.apiserver.k8s.io/v1alpha1")] [KubeObject("StorageVersionList", "internal.apiserver.k8s.io/v1alpha1")] public partial class StorageVersionListV1Alpha1 : KubeResourceListV1 { /// /// Items holds a list of StorageVersion /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionMigrationListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StorageVersionMigrationList is a collection of storage version migrations. /// [KubeListItem("StorageVersionMigration", "storagemigration.k8s.io/v1alpha1")] [KubeObject("StorageVersionMigrationList", "storagemigration.k8s.io/v1alpha1")] public partial class StorageVersionMigrationListV1Alpha1 : KubeResourceListV1 { /// /// Items is the list of StorageVersionMigration /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionMigrationSpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Spec of the storage version migration. /// public partial class StorageVersionMigrationSpecV1Alpha1 { /// /// The resource that is being migrated. The migrator sends requests to the endpoint serving the resource. Immutable. /// [YamlMember(Alias = "resource")] [JsonProperty("resource", NullValueHandling = NullValueHandling.Include)] public GroupVersionResourceV1Alpha1 Resource { get; set; } /// /// 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. /// [YamlMember(Alias = "continueToken")] [JsonProperty("continueToken", NullValueHandling = NullValueHandling.Ignore)] public string ContinueToken { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionMigrationStatusV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Status of the storage version migration. /// public partial class StorageVersionMigrationStatusV1Alpha1 { /// /// 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. /// [YamlMember(Alias = "resourceVersion")] [JsonProperty("resourceVersion", NullValueHandling = NullValueHandling.Ignore)] public string ResourceVersion { get; set; } /// /// The latest available observations of the migration's current state. /// [MergeStrategy(Key = "type")] [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionMigrationV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StorageVersionMigration represents a migration of stored data to the latest storage version. /// [KubeObject("StorageVersionMigration", "storagemigration.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations")] [KubeApi(KubeAction.Create, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations")] [KubeApi(KubeAction.Get, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")] [KubeApi(KubeAction.Patch, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")] [KubeApi(KubeAction.Delete, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")] [KubeApi(KubeAction.Update, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")] [KubeApi(KubeAction.WatchList, "apis/storagemigration.k8s.io/v1alpha1/watch/storageversionmigrations")] [KubeApi(KubeAction.DeleteCollection, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations")] [KubeApi(KubeAction.Get, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status")] [KubeApi(KubeAction.Watch, "apis/storagemigration.k8s.io/v1alpha1/watch/storageversionmigrations/{name}")] [KubeApi(KubeAction.Patch, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status")] [KubeApi(KubeAction.Update, "apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status")] public partial class StorageVersionMigrationV1Alpha1 : KubeResourceV1 { /// /// Specification of the migration. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public StorageVersionMigrationSpecV1Alpha1 Spec { get; set; } /// /// Status of the migration. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public StorageVersionMigrationStatusV1Alpha1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionSpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// StorageVersionSpec is an empty spec. /// public partial class StorageVersionSpecV1Alpha1 { } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionStatusV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend. /// public partial class StorageVersionStatusV1Alpha1 { /// /// If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality. /// [YamlMember(Alias = "commonEncodingVersion")] [JsonProperty("commonEncodingVersion", NullValueHandling = NullValueHandling.Ignore)] public string CommonEncodingVersion { get; set; } /// /// The latest available observations of the storageVersion's state. /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; /// /// The reported versions per API server instance. /// [YamlMember(Alias = "storageVersions")] [JsonProperty("storageVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List StorageVersions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeStorageVersions() => StorageVersions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/StorageVersionV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Storage version of a specific resource. /// [KubeObject("StorageVersion", "internal.apiserver.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions")] [KubeApi(KubeAction.Create, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions")] [KubeApi(KubeAction.Get, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}")] [KubeApi(KubeAction.Patch, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}")] [KubeApi(KubeAction.Delete, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}")] [KubeApi(KubeAction.Update, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}")] [KubeApi(KubeAction.WatchList, "apis/internal.apiserver.k8s.io/v1alpha1/watch/storageversions")] [KubeApi(KubeAction.DeleteCollection, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions")] [KubeApi(KubeAction.Get, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}/status")] [KubeApi(KubeAction.Watch, "apis/internal.apiserver.k8s.io/v1alpha1/watch/storageversions/{name}")] [KubeApi(KubeAction.Patch, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}/status")] [KubeApi(KubeAction.Update, "apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}/status")] public partial class StorageVersionV1Alpha1 : KubeResourceV1 { /// /// Spec is an empty spec. It is here to comply with Kubernetes API style. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public StorageVersionSpecV1Alpha1 Spec { get; set; } /// /// API server instances report the version they can decode and the version they encode objects to when persisting objects in the backend. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Include)] public StorageVersionStatusV1Alpha1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectAccessReviewSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set /// public partial class SubjectAccessReviewSpecV1 { /// /// Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here. /// [YamlMember(Alias = "extra")] [JsonProperty("extra", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary> Extra { get; } = new Dictionary>(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExtra() => Extra.Count > 0; /// /// UID information about the requesting user. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// User is the user you're testing for. If you specify "User" but not "Groups", then is it interpreted as "What if User were not a member of any groups /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } /// /// Groups is the groups you're testing for. /// [YamlMember(Alias = "groups")] [JsonProperty("groups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Groups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeGroups() => Groups.Count > 0; /// /// NonResourceAttributes describes information for a non-resource access request /// [YamlMember(Alias = "nonResourceAttributes")] [JsonProperty("nonResourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public NonResourceAttributesV1 NonResourceAttributes { get; set; } /// /// ResourceAuthorizationAttributes describes information for a resource access request /// [YamlMember(Alias = "resourceAttributes")] [JsonProperty("resourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public ResourceAttributesV1 ResourceAttributes { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectAccessReviewSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set /// public partial class SubjectAccessReviewSpecV1Beta1 { /// /// Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here. /// [YamlMember(Alias = "extra")] [JsonProperty("extra", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary> Extra { get; } = new Dictionary>(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExtra() => Extra.Count > 0; /// /// UID information about the requesting user. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// Groups is the groups you're testing for. /// [YamlMember(Alias = "group")] [JsonProperty("group", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Group { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeGroup() => Group.Count > 0; /// /// User is the user you're testing for. If you specify "User" but not "Group", then is it interpreted as "What if User were not a member of any groups /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public string User { get; set; } /// /// NonResourceAttributes describes information for a non-resource access request /// [YamlMember(Alias = "nonResourceAttributes")] [JsonProperty("nonResourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public NonResourceAttributesV1Beta1 NonResourceAttributes { get; set; } /// /// ResourceAuthorizationAttributes describes information for a resource access request /// [YamlMember(Alias = "resourceAttributes")] [JsonProperty("resourceAttributes", NullValueHandling = NullValueHandling.Ignore)] public ResourceAttributesV1Beta1 ResourceAttributes { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectAccessReviewStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectAccessReviewStatus /// public partial class SubjectAccessReviewStatusV1 { /// /// Allowed is required. True if the action would be allowed, false otherwise. /// [YamlMember(Alias = "allowed")] [JsonProperty("allowed", NullValueHandling = NullValueHandling.Include)] public bool Allowed { get; set; } /// /// Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true. /// [YamlMember(Alias = "denied")] [JsonProperty("denied", NullValueHandling = NullValueHandling.Ignore)] public bool? Denied { get; set; } /// /// Reason is optional. It indicates why a request was allowed or denied. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request. /// [YamlMember(Alias = "evaluationError")] [JsonProperty("evaluationError", NullValueHandling = NullValueHandling.Ignore)] public string EvaluationError { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectAccessReviewStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectAccessReviewStatus /// public partial class SubjectAccessReviewStatusV1Beta1 { /// /// Allowed is required. True if the action would be allowed, false otherwise. /// [YamlMember(Alias = "allowed")] [JsonProperty("allowed", NullValueHandling = NullValueHandling.Include)] public bool Allowed { get; set; } /// /// Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true. /// [YamlMember(Alias = "denied")] [JsonProperty("denied", NullValueHandling = NullValueHandling.Ignore)] public bool? Denied { get; set; } /// /// Reason is optional. It indicates why a request was allowed or denied. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } /// /// EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request. /// [YamlMember(Alias = "evaluationError")] [JsonProperty("evaluationError", NullValueHandling = NullValueHandling.Ignore)] public string EvaluationError { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectAccessReviewV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectAccessReview checks whether or not a user or group can perform an action. /// [KubeObject("SubjectAccessReview", "authorization.k8s.io/v1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1/subjectaccessreviews")] public partial class SubjectAccessReviewV1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SubjectAccessReviewSpecV1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request is allowed or not /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectAccessReviewStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectAccessReviewV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectAccessReview checks whether or not a user or group can perform an action. /// [KubeObject("SubjectAccessReview", "authorization.k8s.io/v1beta1")] [KubeApi(KubeAction.Create, "apis/authorization.k8s.io/v1beta1/subjectaccessreviews")] public partial class SubjectAccessReviewV1Beta1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public SubjectAccessReviewSpecV1Beta1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request is allowed or not /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public SubjectAccessReviewStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectRulesReviewStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete. /// public partial class SubjectRulesReviewStatusV1 { /// /// Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation. /// [YamlMember(Alias = "incomplete")] [JsonProperty("incomplete", NullValueHandling = NullValueHandling.Include)] public bool Incomplete { get; set; } /// /// EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete. /// [YamlMember(Alias = "evaluationError")] [JsonProperty("evaluationError", NullValueHandling = NullValueHandling.Ignore)] public string EvaluationError { get; set; } /// /// NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete. /// [YamlMember(Alias = "nonResourceRules")] [JsonProperty("nonResourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceRules { get; } = new List(); /// /// 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. /// [YamlMember(Alias = "resourceRules")] [JsonProperty("resourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceRules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/SubjectRulesReviewStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete. /// public partial class SubjectRulesReviewStatusV1Beta1 { /// /// Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation. /// [YamlMember(Alias = "incomplete")] [JsonProperty("incomplete", NullValueHandling = NullValueHandling.Include)] public bool Incomplete { get; set; } /// /// EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete. /// [YamlMember(Alias = "evaluationError")] [JsonProperty("evaluationError", NullValueHandling = NullValueHandling.Ignore)] public string EvaluationError { get; set; } /// /// NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete. /// [YamlMember(Alias = "nonResourceRules")] [JsonProperty("nonResourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List NonResourceRules { get; } = new List(); /// /// 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. /// [YamlMember(Alias = "resourceRules")] [JsonProperty("resourceRules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ResourceRules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/SubjectV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names. /// public partial class SubjectV1 { /// /// Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error. /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// Name of the object being referenced. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects. /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Ignore)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names. /// public partial class SubjectV1Alpha1 : KubeObjectV1 { /// /// Name of the object being referenced. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names. /// public partial class SubjectV1Beta1 { /// /// Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error. /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// Name of the object being referenced. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects. /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Ignore)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SubjectV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account. /// public partial class SubjectV1Beta3 { /// /// `kind` indicates which one of the other fields is non-empty. Required /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// `group` matches based on user group name. /// [YamlMember(Alias = "group")] [JsonProperty("group", NullValueHandling = NullValueHandling.Ignore)] public GroupSubjectV1Beta3 Group { get; set; } /// /// `user` matches based on username. /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public UserSubjectV1Beta3 User { get; set; } /// /// `serviceAccount` matches ServiceAccounts. /// [YamlMember(Alias = "serviceAccount")] [JsonProperty("serviceAccount", NullValueHandling = NullValueHandling.Ignore)] public ServiceAccountSubjectV1Beta3 ServiceAccount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SuccessPolicyRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the "succeededIndexes" or "succeededCount" specified. /// public partial class SuccessPolicyRuleV1 { /// /// 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. /// [YamlMember(Alias = "succeededIndexes")] [JsonProperty("succeededIndexes", NullValueHandling = NullValueHandling.Ignore)] public string SucceededIndexes { get; set; } /// /// 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. /// [YamlMember(Alias = "succeededCount")] [JsonProperty("succeededCount", NullValueHandling = NullValueHandling.Ignore)] public int? SucceededCount { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/SuccessPolicyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes. /// public partial class SuccessPolicyV1 { /// /// 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. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/SupplementalGroupsStrategyOptionsV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead. /// public partial class SupplementalGroupsStrategyOptionsV1Beta1 { /// /// rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. /// [YamlMember(Alias = "rule")] [JsonProperty("rule", NullValueHandling = NullValueHandling.Ignore)] public string Rule { get; set; } /// /// ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs. /// [YamlMember(Alias = "ranges")] [JsonProperty("ranges", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Ranges { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRanges() => Ranges.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/SysctlV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Sysctl defines a kernel parameter to be set /// public partial class SysctlV1 { /// /// Name of a property to set /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Value of a property to set /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Include)] public string Value { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TCPSocketActionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TCPSocketAction describes an action based on opening a socket /// public partial class TCPSocketActionV1 { /// /// Optional: Host name to connect to, defaults to the pod IP. /// [YamlMember(Alias = "host")] [JsonProperty("host", NullValueHandling = NullValueHandling.Ignore)] public string Host { get; set; } /// /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. /// [YamlMember(Alias = "port")] [JsonProperty("port", NullValueHandling = NullValueHandling.Include)] public Int32OrStringV1 Port { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TaintV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint. /// public partial class TaintV1 { /// /// TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. /// [YamlMember(Alias = "timeAdded")] [JsonProperty("timeAdded", NullValueHandling = NullValueHandling.Ignore)] public DateTime? TimeAdded { get; set; } /// /// The taint value corresponding to the taint key. /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Ignore)] public string Value { get; set; } /// /// Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute. /// [YamlMember(Alias = "effect")] [JsonProperty("effect", NullValueHandling = NullValueHandling.Include)] public string Effect { get; set; } /// /// Required. The taint key to be applied to a node. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TokenRequestSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenRequestSpec contains client provided parameters of a token request. /// public partial class TokenRequestSpecV1 { /// /// BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation. /// [YamlMember(Alias = "boundObjectRef")] [JsonProperty("boundObjectRef", NullValueHandling = NullValueHandling.Ignore)] public BoundObjectReferenceV1 BoundObjectRef { get; set; } /// /// Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences. /// [YamlMember(Alias = "audiences")] [JsonProperty("audiences", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Audiences { get; } = new List(); /// /// ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response. /// [YamlMember(Alias = "expirationSeconds")] [JsonProperty("expirationSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? ExpirationSeconds { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TokenRequestStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenRequestStatus is the result of a token request. /// public partial class TokenRequestStatusV1 { /// /// Token is the opaque bearer token. /// [YamlMember(Alias = "token")] [JsonProperty("token", NullValueHandling = NullValueHandling.Include)] public string Token { get; set; } /// /// ExpirationTimestamp is the time of expiration of the returned token. /// [YamlMember(Alias = "expirationTimestamp")] [JsonProperty("expirationTimestamp", NullValueHandling = NullValueHandling.Include)] public DateTime? ExpirationTimestamp { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TokenRequestV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenRequest contains parameters of a service account token. /// public partial class TokenRequestV1 { /// /// audience is the intended audience of the token in "TokenRequestSpec". It will default to the audiences of kube apiserver. /// [YamlMember(Alias = "audience")] [JsonProperty("audience", NullValueHandling = NullValueHandling.Include)] public string Audience { get; set; } /// /// expirationSeconds is the duration of validity of the token in "TokenRequestSpec". It has the same default value of "ExpirationSeconds" in "TokenRequestSpec". /// [YamlMember(Alias = "expirationSeconds")] [JsonProperty("expirationSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? ExpirationSeconds { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TokenReviewSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenReviewSpec is a description of the token authentication request. /// public partial class TokenReviewSpecV1 { /// /// Token is the opaque bearer token. /// [YamlMember(Alias = "token")] [JsonProperty("token", NullValueHandling = NullValueHandling.Ignore)] public string Token { get; set; } /// /// Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver. /// [YamlMember(Alias = "audiences")] [JsonProperty("audiences", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Audiences { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAudiences() => Audiences.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/TokenReviewSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenReviewSpec is a description of the token authentication request. /// public partial class TokenReviewSpecV1Beta1 { /// /// Token is the opaque bearer token. /// [YamlMember(Alias = "token")] [JsonProperty("token", NullValueHandling = NullValueHandling.Ignore)] public string Token { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TokenReviewStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenReviewStatus is the result of the token authentication request. /// public partial class TokenReviewStatusV1 { /// /// Authenticated indicates that the token was associated with a known user. /// [YamlMember(Alias = "authenticated")] [JsonProperty("authenticated", NullValueHandling = NullValueHandling.Ignore)] public bool? Authenticated { get; set; } /// /// Error indicates that the token couldn't be checked /// [YamlMember(Alias = "error")] [JsonProperty("error", NullValueHandling = NullValueHandling.Ignore)] public string Error { get; set; } /// /// User is the UserInfo associated with the provided token. /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public UserInfoV1 User { get; set; } /// /// Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is "true", the token is valid against the audience of the Kubernetes API server. /// [YamlMember(Alias = "audiences")] [JsonProperty("audiences", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Audiences { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAudiences() => Audiences.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/TokenReviewStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenReviewStatus is the result of the token authentication request. /// public partial class TokenReviewStatusV1Beta1 { /// /// Authenticated indicates that the token was associated with a known user. /// [YamlMember(Alias = "authenticated")] [JsonProperty("authenticated", NullValueHandling = NullValueHandling.Ignore)] public bool? Authenticated { get; set; } /// /// Error indicates that the token couldn't be checked /// [YamlMember(Alias = "error")] [JsonProperty("error", NullValueHandling = NullValueHandling.Ignore)] public string Error { get; set; } /// /// User is the UserInfo associated with the provided token. /// [YamlMember(Alias = "user")] [JsonProperty("user", NullValueHandling = NullValueHandling.Ignore)] public UserInfoV1Beta1 User { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TokenReviewV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver. /// [KubeObject("TokenReview", "authentication.k8s.io/v1")] [KubeApi(KubeAction.Create, "apis/authentication.k8s.io/v1/tokenreviews")] public partial class TokenReviewV1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public TokenReviewSpecV1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request can be authenticated. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public TokenReviewStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TokenReviewV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver. /// [KubeObject("TokenReview", "authentication.k8s.io/v1beta1")] [KubeApi(KubeAction.Create, "apis/authentication.k8s.io/v1beta1/tokenreviews")] public partial class TokenReviewV1Beta1 : KubeResourceV1 { /// /// Spec holds information about the request being evaluated /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public TokenReviewSpecV1Beta1 Spec { get; set; } /// /// Status is filled in by the server and indicates whether the request can be authenticated. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public TokenReviewStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TolerationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>. /// public partial class TolerationV1 { /// /// Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. /// [YamlMember(Alias = "value")] [JsonProperty("value", NullValueHandling = NullValueHandling.Ignore)] public string Value { get; set; } /// /// Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. /// [YamlMember(Alias = "operator")] [JsonProperty("operator", NullValueHandling = NullValueHandling.Ignore)] public string Operator { get; set; } /// /// TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. /// [YamlMember(Alias = "tolerationSeconds")] [JsonProperty("tolerationSeconds", NullValueHandling = NullValueHandling.Ignore)] public long? TolerationSeconds { get; set; } /// /// Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. /// [YamlMember(Alias = "effect")] [JsonProperty("effect", NullValueHandling = NullValueHandling.Ignore)] public string Effect { get; set; } /// /// Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Ignore)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TopologySelectorLabelRequirementV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future. /// public partial class TopologySelectorLabelRequirementV1 { /// /// An array of string values. One value must match the label to be selected. Each entry in Values is ORed. /// [YamlMember(Alias = "values")] [JsonProperty("values", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Values { get; } = new List(); /// /// The label key that the selector applies to. /// [YamlMember(Alias = "key")] [JsonProperty("key", NullValueHandling = NullValueHandling.Include)] public string Key { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TopologySelectorTermV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future. /// public partial class TopologySelectorTermV1 { /// /// A list of topology selector requirements by labels. /// [YamlMember(Alias = "matchLabelExpressions")] [JsonProperty("matchLabelExpressions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchLabelExpressions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchLabelExpressions() => MatchLabelExpressions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/TopologySpreadConstraintV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TopologySpreadConstraint specifies how to spread matching pods among the given topology. /// public partial class TopologySpreadConstraintV1 { /// /// WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, /// but giving higher precedence to topologies that would help reduce the /// skew. /// A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field. /// [YamlMember(Alias = "whenUnsatisfiable")] [JsonProperty("whenUnsatisfiable", NullValueHandling = NullValueHandling.Include)] public string WhenUnsatisfiable { get; set; } /// /// LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain. /// [YamlMember(Alias = "labelSelector")] [JsonProperty("labelSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 LabelSelector { get; set; } /// /// 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). /// [YamlMember(Alias = "matchLabelKeys")] [JsonProperty("matchLabelKeys", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchLabelKeys { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchLabelKeys() => MatchLabelKeys.Count > 0; /// /// 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. /// [YamlMember(Alias = "minDomains")] [JsonProperty("minDomains", NullValueHandling = NullValueHandling.Ignore)] public int? MinDomains { get; set; } /// /// 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. /// [YamlMember(Alias = "maxSkew")] [JsonProperty("maxSkew", NullValueHandling = NullValueHandling.Include)] public int MaxSkew { get; set; } /// /// 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. /// [YamlMember(Alias = "nodeAffinityPolicy")] [JsonProperty("nodeAffinityPolicy", NullValueHandling = NullValueHandling.Ignore)] public string NodeAffinityPolicy { get; set; } /// /// 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. /// [YamlMember(Alias = "nodeTaintsPolicy")] [JsonProperty("nodeTaintsPolicy", NullValueHandling = NullValueHandling.Ignore)] public string NodeTaintsPolicy { get; set; } /// /// 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. /// [YamlMember(Alias = "topologyKey")] [JsonProperty("topologyKey", NullValueHandling = NullValueHandling.Include)] public string TopologyKey { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TypeCheckingV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy /// public partial class TypeCheckingV1 { /// /// The type checking warnings for each expression. /// [YamlMember(Alias = "expressionWarnings")] [JsonProperty("expressionWarnings", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ExpressionWarnings { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExpressionWarnings() => ExpressionWarnings.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/TypeCheckingV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy /// public partial class TypeCheckingV1Alpha1 { /// /// The type checking warnings for each expression. /// [YamlMember(Alias = "expressionWarnings")] [JsonProperty("expressionWarnings", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ExpressionWarnings { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExpressionWarnings() => ExpressionWarnings.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/TypeCheckingV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy /// public partial class TypeCheckingV1Beta1 { /// /// The type checking warnings for each expression. /// [YamlMember(Alias = "expressionWarnings")] [JsonProperty("expressionWarnings", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ExpressionWarnings { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExpressionWarnings() => ExpressionWarnings.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/TypedLocalObjectReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace. /// public partial class TypedLocalObjectReferenceV1 { /// /// Kind is the type of resource being referenced /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// Name is the name of resource being referenced /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Ignore)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/TypedObjectReferenceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// No description provided. /// public partial class TypedObjectReferenceV1 { /// /// Kind is the type of resource being referenced /// [YamlMember(Alias = "kind")] [JsonProperty("kind", NullValueHandling = NullValueHandling.Include)] public string Kind { get; set; } /// /// Name is the name of resource being referenced /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. /// [YamlMember(Alias = "namespace")] [JsonProperty("namespace", NullValueHandling = NullValueHandling.Ignore)] public string Namespace { get; set; } /// /// APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. /// [YamlMember(Alias = "apiGroup")] [JsonProperty("apiGroup", NullValueHandling = NullValueHandling.Ignore)] public string ApiGroup { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/UncountedTerminatedPodsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters. /// public partial class UncountedTerminatedPodsV1 { /// /// failed holds UIDs of failed Pods. /// [YamlMember(Alias = "failed")] [JsonProperty("failed", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Failed { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeFailed() => Failed.Count > 0; /// /// succeeded holds UIDs of succeeded Pods. /// [YamlMember(Alias = "succeeded")] [JsonProperty("succeeded", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Succeeded { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeSucceeded() => Succeeded.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/UserInfoV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// UserInfo holds the information about the user needed to implement the user.Info interface. /// public partial class UserInfoV1 { /// /// Any additional information provided by the authenticator. /// [YamlMember(Alias = "extra")] [JsonProperty("extra", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary> Extra { get; } = new Dictionary>(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExtra() => Extra.Count > 0; /// /// 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. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// The name that uniquely identifies this user among all active users. /// [YamlMember(Alias = "username")] [JsonProperty("username", NullValueHandling = NullValueHandling.Ignore)] public string Username { get; set; } /// /// The names of groups this user is a part of. /// [YamlMember(Alias = "groups")] [JsonProperty("groups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Groups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeGroups() => Groups.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/UserInfoV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// UserInfo holds the information about the user needed to implement the user.Info interface. /// public partial class UserInfoV1Beta1 { /// /// Any additional information provided by the authenticator. /// [YamlMember(Alias = "extra")] [JsonProperty("extra", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary> Extra { get; } = new Dictionary>(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeExtra() => Extra.Count > 0; /// /// 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. /// [YamlMember(Alias = "uid")] [JsonProperty("uid", NullValueHandling = NullValueHandling.Ignore)] public string Uid { get; set; } /// /// The name that uniquely identifies this user among all active users. /// [YamlMember(Alias = "username")] [JsonProperty("username", NullValueHandling = NullValueHandling.Ignore)] public string Username { get; set; } /// /// The names of groups this user is a part of. /// [YamlMember(Alias = "groups")] [JsonProperty("groups", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Groups { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeGroups() => Groups.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/UserSubjectV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// UserSubject holds detailed information for user-kind subject. /// public partial class UserSubjectV1 { /// /// `name` is the username that matches, or "*" to match all usernames. Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/UserSubjectV1Beta3.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// UserSubject holds detailed information for user-kind subject. /// public partial class UserSubjectV1Beta3 { /// /// `name` is the username that matches, or "*" to match all usernames. Required. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding. /// [KubeListItem("ValidatingAdmissionPolicyBinding", "admissionregistration.k8s.io/v1")] [KubeObject("ValidatingAdmissionPolicyBindingList", "admissionregistration.k8s.io/v1")] public partial class ValidatingAdmissionPolicyBindingListV1 : KubeResourceListV1 { /// /// List of PolicyBinding. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding. /// [KubeListItem("ValidatingAdmissionPolicyBinding", "admissionregistration.k8s.io/v1alpha1")] [KubeObject("ValidatingAdmissionPolicyBindingList", "admissionregistration.k8s.io/v1alpha1")] public partial class ValidatingAdmissionPolicyBindingListV1Alpha1 : KubeResourceListV1 { /// /// List of PolicyBinding. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding. /// [KubeListItem("ValidatingAdmissionPolicyBinding", "admissionregistration.k8s.io/v1beta1")] [KubeObject("ValidatingAdmissionPolicyBindingList", "admissionregistration.k8s.io/v1beta1")] public partial class ValidatingAdmissionPolicyBindingListV1Beta1 : KubeResourceListV1 { /// /// List of PolicyBinding. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. /// public partial class ValidatingAdmissionPolicyBindingSpecV1 { /// /// 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. /// [YamlMember(Alias = "policyName")] [JsonProperty("policyName", NullValueHandling = NullValueHandling.Ignore)] public string PolicyName { get; set; } /// /// 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. /// [YamlMember(Alias = "paramRef")] [JsonProperty("paramRef", NullValueHandling = NullValueHandling.Ignore)] public ParamRefV1 ParamRef { get; set; } /// /// 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. /// [YamlMember(Alias = "matchResources")] [JsonProperty("matchResources", NullValueHandling = NullValueHandling.Ignore)] public MatchResourcesV1 MatchResources { get; set; } /// /// 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. /// [YamlMember(Alias = "validationActions")] [JsonProperty("validationActions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ValidationActions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValidationActions() => ValidationActions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingSpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. /// public partial class ValidatingAdmissionPolicyBindingSpecV1Alpha1 { /// /// 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. /// [YamlMember(Alias = "policyName")] [JsonProperty("policyName", NullValueHandling = NullValueHandling.Ignore)] public string PolicyName { get; set; } /// /// 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. /// [YamlMember(Alias = "paramRef")] [JsonProperty("paramRef", NullValueHandling = NullValueHandling.Ignore)] public ParamRefV1Alpha1 ParamRef { get; set; } /// /// 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. /// [YamlMember(Alias = "matchResources")] [JsonProperty("matchResources", NullValueHandling = NullValueHandling.Ignore)] public MatchResourcesV1Alpha1 MatchResources { get; set; } /// /// 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. /// [YamlMember(Alias = "validationActions")] [JsonProperty("validationActions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ValidationActions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValidationActions() => ValidationActions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. /// public partial class ValidatingAdmissionPolicyBindingSpecV1Beta1 { /// /// 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. /// [YamlMember(Alias = "policyName")] [JsonProperty("policyName", NullValueHandling = NullValueHandling.Ignore)] public string PolicyName { get; set; } /// /// 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. /// [YamlMember(Alias = "paramRef")] [JsonProperty("paramRef", NullValueHandling = NullValueHandling.Ignore)] public ParamRefV1Beta1 ParamRef { get; set; } /// /// 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. /// [YamlMember(Alias = "matchResources")] [JsonProperty("matchResources", NullValueHandling = NullValueHandling.Ignore)] public MatchResourcesV1Beta1 MatchResources { get; set; } /// /// 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. /// [YamlMember(Alias = "validationActions")] [JsonProperty("validationActions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ValidationActions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValidationActions() => ValidationActions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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. /// [KubeObject("ValidatingAdmissionPolicyBinding", "admissionregistration.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings/{name}")] public partial class ValidatingAdmissionPolicyBindingV1 : KubeResourceV1 { /// /// Specification of the desired behavior of the ValidatingAdmissionPolicyBinding. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicyBindingSpecV1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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. /// [KubeObject("ValidatingAdmissionPolicyBinding", "admissionregistration.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1alpha1/watch/validatingadmissionpolicybindings")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1alpha1/watch/validatingadmissionpolicybindings/{name}")] public partial class ValidatingAdmissionPolicyBindingV1Alpha1 : KubeResourceV1 { /// /// Specification of the desired behavior of the ValidatingAdmissionPolicyBinding. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicyBindingSpecV1Alpha1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyBindingV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// 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. /// [KubeObject("ValidatingAdmissionPolicyBinding", "admissionregistration.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1beta1/watch/validatingadmissionpolicybindings")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1beta1/watch/validatingadmissionpolicybindings/{name}")] public partial class ValidatingAdmissionPolicyBindingV1Beta1 : KubeResourceV1 { /// /// Specification of the desired behavior of the ValidatingAdmissionPolicyBinding. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicyBindingSpecV1Beta1 Spec { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy. /// [KubeListItem("ValidatingAdmissionPolicy", "admissionregistration.k8s.io/v1")] [KubeObject("ValidatingAdmissionPolicyList", "admissionregistration.k8s.io/v1")] public partial class ValidatingAdmissionPolicyListV1 : KubeResourceListV1 { /// /// List of ValidatingAdmissionPolicy. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy. /// [KubeListItem("ValidatingAdmissionPolicy", "admissionregistration.k8s.io/v1alpha1")] [KubeObject("ValidatingAdmissionPolicyList", "admissionregistration.k8s.io/v1alpha1")] public partial class ValidatingAdmissionPolicyListV1Alpha1 : KubeResourceListV1 { /// /// List of ValidatingAdmissionPolicy. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy. /// [KubeListItem("ValidatingAdmissionPolicy", "admissionregistration.k8s.io/v1beta1")] [KubeObject("ValidatingAdmissionPolicyList", "admissionregistration.k8s.io/v1beta1")] public partial class ValidatingAdmissionPolicyListV1Beta1 : KubeResourceListV1 { /// /// List of ValidatingAdmissionPolicy. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicySpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. /// public partial class ValidatingAdmissionPolicySpecV1 { /// /// 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. /// [YamlMember(Alias = "paramKind")] [JsonProperty("paramKind", NullValueHandling = NullValueHandling.Ignore)] public ParamKindV1 ParamKind { get; set; } /// /// 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. /// [YamlMember(Alias = "auditAnnotations")] [JsonProperty("auditAnnotations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AuditAnnotations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAuditAnnotations() => AuditAnnotations.Count > 0; /// /// 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 /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "matchConditions")] [JsonProperty("matchConditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchConditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchConditions() => MatchConditions.Count > 0; /// /// 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. /// [YamlMember(Alias = "matchConstraints")] [JsonProperty("matchConstraints", NullValueHandling = NullValueHandling.Ignore)] public MatchResourcesV1 MatchConstraints { get; set; } /// /// 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. /// [YamlMember(Alias = "validations")] [JsonProperty("validations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Validations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValidations() => Validations.Count > 0; /// /// 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. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "variables")] [JsonProperty("variables", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Variables { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVariables() => Variables.Count > 0; /// /// 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. /// [YamlMember(Alias = "failurePolicy")] [JsonProperty("failurePolicy", NullValueHandling = NullValueHandling.Ignore)] public string FailurePolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicySpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. /// public partial class ValidatingAdmissionPolicySpecV1Alpha1 { /// /// 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. /// [YamlMember(Alias = "paramKind")] [JsonProperty("paramKind", NullValueHandling = NullValueHandling.Ignore)] public ParamKindV1Alpha1 ParamKind { get; set; } /// /// 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. /// [YamlMember(Alias = "auditAnnotations")] [JsonProperty("auditAnnotations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AuditAnnotations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAuditAnnotations() => AuditAnnotations.Count > 0; /// /// 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 /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "matchConditions")] [JsonProperty("matchConditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchConditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchConditions() => MatchConditions.Count > 0; /// /// 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. /// [YamlMember(Alias = "matchConstraints")] [JsonProperty("matchConstraints", NullValueHandling = NullValueHandling.Ignore)] public MatchResourcesV1Alpha1 MatchConstraints { get; set; } /// /// 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. /// [YamlMember(Alias = "validations")] [JsonProperty("validations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Validations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValidations() => Validations.Count > 0; /// /// 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. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "variables")] [JsonProperty("variables", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Variables { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVariables() => Variables.Count > 0; /// /// 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. /// [YamlMember(Alias = "failurePolicy")] [JsonProperty("failurePolicy", NullValueHandling = NullValueHandling.Ignore)] public string FailurePolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicySpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. /// public partial class ValidatingAdmissionPolicySpecV1Beta1 { /// /// 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. /// [YamlMember(Alias = "paramKind")] [JsonProperty("paramKind", NullValueHandling = NullValueHandling.Ignore)] public ParamKindV1Beta1 ParamKind { get; set; } /// /// 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. /// [YamlMember(Alias = "auditAnnotations")] [JsonProperty("auditAnnotations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AuditAnnotations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAuditAnnotations() => AuditAnnotations.Count > 0; /// /// 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 /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "matchConditions")] [JsonProperty("matchConditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchConditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchConditions() => MatchConditions.Count > 0; /// /// 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. /// [YamlMember(Alias = "matchConstraints")] [JsonProperty("matchConstraints", NullValueHandling = NullValueHandling.Ignore)] public MatchResourcesV1Beta1 MatchConstraints { get; set; } /// /// 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. /// [YamlMember(Alias = "validations")] [JsonProperty("validations", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Validations { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeValidations() => Validations.Count > 0; /// /// 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. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "variables")] [JsonProperty("variables", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Variables { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeVariables() => Variables.Count > 0; /// /// 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. /// [YamlMember(Alias = "failurePolicy")] [JsonProperty("failurePolicy", NullValueHandling = NullValueHandling.Ignore)] public string FailurePolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyStatus represents the status of an admission validation policy. /// public partial class ValidatingAdmissionPolicyStatusV1 { /// /// The results of type checking for each expression. Presence of this field indicates the completion of the type checking. /// [YamlMember(Alias = "typeChecking")] [JsonProperty("typeChecking", NullValueHandling = NullValueHandling.Ignore)] public TypeCheckingV1 TypeChecking { get; set; } /// /// The generation observed by the controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The conditions represent the latest available observations of a policy's current state. /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyStatusV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy. /// public partial class ValidatingAdmissionPolicyStatusV1Alpha1 { /// /// The results of type checking for each expression. Presence of this field indicates the completion of the type checking. /// [YamlMember(Alias = "typeChecking")] [JsonProperty("typeChecking", NullValueHandling = NullValueHandling.Ignore)] public TypeCheckingV1Alpha1 TypeChecking { get; set; } /// /// The generation observed by the controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The conditions represent the latest available observations of a policy's current state. /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicyStatus represents the status of an admission validation policy. /// public partial class ValidatingAdmissionPolicyStatusV1Beta1 { /// /// The results of type checking for each expression. Presence of this field indicates the completion of the type checking. /// [YamlMember(Alias = "typeChecking")] [JsonProperty("typeChecking", NullValueHandling = NullValueHandling.Ignore)] public TypeCheckingV1Beta1 TypeChecking { get; set; } /// /// The generation observed by the controller. /// [YamlMember(Alias = "observedGeneration")] [JsonProperty("observedGeneration", NullValueHandling = NullValueHandling.Ignore)] public long? ObservedGeneration { get; set; } /// /// The conditions represent the latest available observations of a policy's current state. /// [YamlMember(Alias = "conditions")] [JsonProperty("conditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Conditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeConditions() => Conditions.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it. /// [KubeObject("ValidatingAdmissionPolicy", "admissionregistration.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status")] public partial class ValidatingAdmissionPolicyV1 : KubeResourceV1 { /// /// Specification of the desired behavior of the ValidatingAdmissionPolicy. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicySpecV1 Spec { get; set; } /// /// 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. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicyStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it. /// [KubeObject("ValidatingAdmissionPolicy", "admissionregistration.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1alpha1/watch/validatingadmissionpolicies")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}/status")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1alpha1/watch/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}/status")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}/status")] public partial class ValidatingAdmissionPolicyV1Alpha1 : KubeResourceV1 { /// /// Specification of the desired behavior of the ValidatingAdmissionPolicy. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicySpecV1Alpha1 Spec { get; set; } /// /// 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. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicyStatusV1Alpha1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingAdmissionPolicyV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it. /// [KubeObject("ValidatingAdmissionPolicy", "admissionregistration.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1beta1/watch/validatingadmissionpolicies")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}/status")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1beta1/watch/validatingadmissionpolicies/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}/status")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}/status")] public partial class ValidatingAdmissionPolicyV1Beta1 : KubeResourceV1 { /// /// Specification of the desired behavior of the ValidatingAdmissionPolicy. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicySpecV1Beta1 Spec { get; set; } /// /// 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. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public ValidatingAdmissionPolicyStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingWebhookConfigurationListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration. /// [KubeListItem("ValidatingWebhookConfiguration", "admissionregistration.k8s.io/v1")] [KubeObject("ValidatingWebhookConfigurationList", "admissionregistration.k8s.io/v1")] public partial class ValidatingWebhookConfigurationListV1 : KubeResourceListV1 { /// /// List of ValidatingWebhookConfiguration. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingWebhookConfigurationListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration. /// [KubeListItem("ValidatingWebhookConfiguration", "admissionregistration.k8s.io/v1beta1")] [KubeObject("ValidatingWebhookConfigurationList", "admissionregistration.k8s.io/v1beta1")] public partial class ValidatingWebhookConfigurationListV1Beta1 : KubeResourceListV1 { /// /// List of ValidatingWebhookConfiguration. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingWebhookConfigurationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. /// [KubeObject("ValidatingWebhookConfiguration", "admissionregistration.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}")] public partial class ValidatingWebhookConfigurationV1 : KubeResourceV1 { /// /// Webhooks is a list of webhooks and the affected resources and operations. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "webhooks")] [JsonProperty("webhooks", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Webhooks { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeWebhooks() => Webhooks.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingWebhookConfigurationV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. /// [KubeObject("ValidatingWebhookConfiguration", "admissionregistration.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations")] [KubeApi(KubeAction.Create, "apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations")] [KubeApi(KubeAction.Get, "apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Patch, "apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Delete, "apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.Update, "apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}")] [KubeApi(KubeAction.WatchList, "apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations")] [KubeApi(KubeAction.DeleteCollection, "apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations")] [KubeApi(KubeAction.Watch, "apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}")] public partial class ValidatingWebhookConfigurationV1Beta1 : KubeResourceV1 { /// /// Webhooks is a list of webhooks and the affected resources and operations. /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "webhooks")] [JsonProperty("webhooks", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Webhooks { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeWebhooks() => Webhooks.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/ValidatingWebhookV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidatingWebhook describes an admission webhook and the resources and operations it applies to. /// public partial class ValidatingWebhookV1 { /// /// 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. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// ClientConfig defines how to communicate with the hook. Required /// [YamlMember(Alias = "clientConfig")] [JsonProperty("clientConfig", NullValueHandling = NullValueHandling.Include)] public WebhookClientConfigV1 ClientConfig { get; set; } /// /// NamespaceSelector decides whether to run the webhook 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 webhook. /// /// For 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": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If instead you want to only run the webhook on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches everything. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, 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. /// [YamlMember(Alias = "objectSelector")] [JsonProperty("objectSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 ObjectSelector { get; set; } /// /// 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. /// [YamlMember(Alias = "admissionReviewVersions")] [JsonProperty("admissionReviewVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List AdmissionReviewVersions { get; } = new List(); /// /// 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 /// [MergeStrategy(Key = "name")] [YamlMember(Alias = "matchConditions")] [JsonProperty("matchConditions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List MatchConditions { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeMatchConditions() => MatchConditions.Count > 0; /// /// Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; /// /// 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. /// [YamlMember(Alias = "sideEffects")] [JsonProperty("sideEffects", NullValueHandling = NullValueHandling.Include)] public string SideEffects { get; set; } /// /// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds. /// [YamlMember(Alias = "timeoutSeconds")] [JsonProperty("timeoutSeconds", NullValueHandling = NullValueHandling.Ignore)] public int? TimeoutSeconds { get; set; } /// /// FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail. /// [YamlMember(Alias = "failurePolicy")] [JsonProperty("failurePolicy", NullValueHandling = NullValueHandling.Ignore)] public string FailurePolicy { get; set; } /// /// 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" /// [YamlMember(Alias = "matchPolicy")] [JsonProperty("matchPolicy", NullValueHandling = NullValueHandling.Ignore)] public string MatchPolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidationRuleV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// ValidationRule describes a validation rule written in the CEL expression language. /// public partial class ValidationRuleV1 { /// /// Message represents the message displayed when validation fails. The message is required if the Rule 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" /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {"rule": "self.status.actual <= self.spec.maxDesired"} /// /// If the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {"rule": "self.components['Widget'].priority < 10"} - Rule scoped to a list of integers: {"rule": "self.values.all(value, value >= 0 && value < 100)"} - Rule scoped to a string value: {"rule": "self.startsWith('kube')"} /// /// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible. /// /// Unknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an "unknown type". An "unknown type" is recursively defined as: /// - A schema with no type and x-kubernetes-preserve-unknown-fields set to true /// - An array where the items schema is of an "unknown type" /// - An object where the additionalProperties schema is of an "unknown type" /// /// 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: /// - Rule accessing a property named "namespace": {"rule": "self.__namespace__ > 0"} /// - Rule accessing a property named "x-prop": {"rule": "self.x__dash__prop > 0"} /// - Rule accessing a property named "redact__d": {"rule": "self.redact__underscores__d > 0"} /// /// Equality on arrays with x-kubernetes-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. /// /// If `rule` makes use of the `oldSelf` variable it is implicitly a `transition rule`. /// /// By default, the `oldSelf` variable is the same type as `self`. When `optionalOldSelf` is true, the `oldSelf` variable is a CEL optional /// variable whose value() is the same type as `self`. /// See the documentation for the `optionalOldSelf` field for details. /// /// Transition rules by default are applied only on UPDATE requests and are skipped if an old value could not be found. You can opt a transition rule into unconditional evaluation by setting `optionalOldSelf` to true. /// [YamlMember(Alias = "rule")] [JsonProperty("rule", NullValueHandling = NullValueHandling.Include)] public string Rule { get; set; } /// /// optionalOldSelf is used to opt a transition rule into evaluation even when the object is first created, or if the old object is missing the value. /// /// When enabled `oldSelf` will be a CEL optional whose value will be `None` if there is no old value, or when the object is initially created. /// /// You may check for presence of oldSelf using `oldSelf.hasValue()` and unwrap it after checking using `oldSelf.value()`. Check the CEL documentation for Optional types for more information: https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes /// /// May not be set unless `oldSelf` is used in `rule`. /// [YamlMember(Alias = "optionalOldSelf")] [JsonProperty("optionalOldSelf", NullValueHandling = NullValueHandling.Ignore)] public bool? OptionalOldSelf { get; set; } /// /// fieldPath represents the field path returned when the validation fails. It must be a relative JSON path (i.e. with array notation) scoped to the location of this x-kubernetes-validations extension in the schema and refer to an existing field. e.g. when validation checks if a specific attribute `foo` under a map `testMap`, the fieldPath could be set to `.testMap.foo` If the validation checks two lists must have unique attributes, the fieldPath could be set to either of the list: e.g. `.testList` It does not support list numeric index. It supports child operation to refer to an existing field currently. Refer to [JSONPath support in Kubernetes](https://kubernetes.io/docs/reference/kubectl/jsonpath/) for more info. Numeric index of array is not supported. For field name which contains special characters, use `['specialName']` to refer the field name. e.g. for attribute `foo.34$` appears in a list `testList`, the fieldPath could be set to `.testList['foo.34$']` /// [YamlMember(Alias = "fieldPath")] [JsonProperty("fieldPath", NullValueHandling = NullValueHandling.Ignore)] public string FieldPath { get; set; } /// /// 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 rule, 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 rule; the only difference is the return type. Example: "x must be less than max ("+string(self.max)+")" /// [YamlMember(Alias = "messageExpression")] [JsonProperty("messageExpression", NullValueHandling = NullValueHandling.Ignore)] public string MessageExpression { get; set; } /// /// reason provides a machine-readable validation failure reason that is returned to the caller when a request fails this validation rule. The HTTP status code returned to the caller will match the reason of the reason of the first failed validation rule. The currently supported reasons are: "FieldValueInvalid", "FieldValueForbidden", "FieldValueRequired", "FieldValueDuplicate". If not set, default to use "FieldValueInvalid". All future added reasons must be accepted by clients when reading this value and unknown reasons should be treated as FieldValueInvalid. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidationV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Validation specifies the CEL expression which is used to apply the validation. /// public partial class ValidationV1 { /// /// 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}". /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// 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. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } /// /// 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)+")" /// [YamlMember(Alias = "messageExpression")] [JsonProperty("messageExpression", NullValueHandling = NullValueHandling.Ignore)] public string MessageExpression { get; set; } /// /// 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. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidationV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Validation specifies the CEL expression which is used to apply the validation. /// public partial class ValidationV1Alpha1 { /// /// 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}". /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// 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. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } /// /// 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)+")" /// [YamlMember(Alias = "messageExpression")] [JsonProperty("messageExpression", NullValueHandling = NullValueHandling.Ignore)] public string MessageExpression { get; set; } /// /// 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. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/ValidationV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Validation specifies the CEL expression which is used to apply the validation. /// public partial class ValidationV1Beta1 { /// /// 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}". /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// 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. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } /// /// 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)+")" /// [YamlMember(Alias = "messageExpression")] [JsonProperty("messageExpression", NullValueHandling = NullValueHandling.Ignore)] public string MessageExpression { get; set; } /// /// 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. /// [YamlMember(Alias = "reason")] [JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)] public string Reason { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VariableV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Variable is the definition of a variable that is used for composition. A variable is defined as a named expression. /// public partial class VariableV1 { /// /// 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` /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// 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. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VariableV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Variable is the definition of a variable that is used for composition. /// public partial class VariableV1Alpha1 { /// /// 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` /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// 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. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VariableV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Variable is the definition of a variable that is used for composition. A variable is defined as a named expression. /// public partial class VariableV1Beta1 { /// /// 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` /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// 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. /// [YamlMember(Alias = "expression")] [JsonProperty("expression", NullValueHandling = NullValueHandling.Include)] public string Expression { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentListV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentList is a collection of VolumeAttachment objects. /// [KubeListItem("VolumeAttachment", "storage.k8s.io/v1")] [KubeObject("VolumeAttachmentList", "storage.k8s.io/v1")] public partial class VolumeAttachmentListV1 : KubeResourceListV1 { /// /// items is the list of VolumeAttachments /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentList is a collection of VolumeAttachment objects. /// [KubeListItem("VolumeAttachment", "storage.k8s.io/v1alpha1")] [KubeObject("VolumeAttachmentList", "storage.k8s.io/v1alpha1")] public partial class VolumeAttachmentListV1Alpha1 : KubeResourceListV1 { /// /// Items is the list of VolumeAttachments /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentList is a collection of VolumeAttachment objects. /// [KubeListItem("VolumeAttachment", "storage.k8s.io/v1beta1")] [KubeObject("VolumeAttachmentList", "storage.k8s.io/v1beta1")] public partial class VolumeAttachmentListV1Beta1 : KubeResourceListV1 { /// /// Items is the list of VolumeAttachments /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. /// public partial class VolumeAttachmentSourceV1 { /// /// inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature. /// [YamlMember(Alias = "inlineVolumeSpec")] [JsonProperty("inlineVolumeSpec", NullValueHandling = NullValueHandling.Ignore)] public PersistentVolumeSpecV1 InlineVolumeSpec { get; set; } /// /// persistentVolumeName represents the name of the persistent volume to attach. /// [YamlMember(Alias = "persistentVolumeName")] [JsonProperty("persistentVolumeName", NullValueHandling = NullValueHandling.Ignore)] public string PersistentVolumeName { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentSourceV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. /// public partial class VolumeAttachmentSourceV1Alpha1 { /// /// Name of the persistent volume to attach. /// [YamlMember(Alias = "persistentVolumeName")] [JsonProperty("persistentVolumeName", NullValueHandling = NullValueHandling.Ignore)] public string PersistentVolumeName { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentSourceV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. /// public partial class VolumeAttachmentSourceV1Beta1 { /// /// Name of the persistent volume to attach. /// [YamlMember(Alias = "persistentVolumeName")] [JsonProperty("persistentVolumeName", NullValueHandling = NullValueHandling.Ignore)] public string PersistentVolumeName { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentSpecV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentSpec is the specification of a VolumeAttachment request. /// public partial class VolumeAttachmentSpecV1 { /// /// nodeName represents the node that the volume should be attached to. /// [YamlMember(Alias = "nodeName")] [JsonProperty("nodeName", NullValueHandling = NullValueHandling.Include)] public string NodeName { get; set; } /// /// source represents the volume that should be attached. /// [YamlMember(Alias = "source")] [JsonProperty("source", NullValueHandling = NullValueHandling.Include)] public VolumeAttachmentSourceV1 Source { get; set; } /// /// attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName(). /// [YamlMember(Alias = "attacher")] [JsonProperty("attacher", NullValueHandling = NullValueHandling.Include)] public string Attacher { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentSpecV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentSpec is the specification of a VolumeAttachment request. /// public partial class VolumeAttachmentSpecV1Alpha1 { /// /// The node that the volume should be attached to. /// [YamlMember(Alias = "nodeName")] [JsonProperty("nodeName", NullValueHandling = NullValueHandling.Include)] public string NodeName { get; set; } /// /// Source represents the volume that should be attached. /// [YamlMember(Alias = "source")] [JsonProperty("source", NullValueHandling = NullValueHandling.Include)] public VolumeAttachmentSourceV1Alpha1 Source { get; set; } /// /// Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName(). /// [YamlMember(Alias = "attacher")] [JsonProperty("attacher", NullValueHandling = NullValueHandling.Include)] public string Attacher { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentSpecV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentSpec is the specification of a VolumeAttachment request. /// public partial class VolumeAttachmentSpecV1Beta1 { /// /// The node that the volume should be attached to. /// [YamlMember(Alias = "nodeName")] [JsonProperty("nodeName", NullValueHandling = NullValueHandling.Include)] public string NodeName { get; set; } /// /// Source represents the volume that should be attached. /// [YamlMember(Alias = "source")] [JsonProperty("source", NullValueHandling = NullValueHandling.Include)] public VolumeAttachmentSourceV1Beta1 Source { get; set; } /// /// Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName(). /// [YamlMember(Alias = "attacher")] [JsonProperty("attacher", NullValueHandling = NullValueHandling.Include)] public string Attacher { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentStatus is the status of a VolumeAttachment request. /// public partial class VolumeAttachmentStatusV1 { /// /// attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attachmentMetadata")] [JsonProperty("attachmentMetadata", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary AttachmentMetadata { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAttachmentMetadata() => AttachmentMetadata.Count > 0; /// /// attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attached")] [JsonProperty("attached", NullValueHandling = NullValueHandling.Include)] public bool Attached { get; set; } /// /// attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attachError")] [JsonProperty("attachError", NullValueHandling = NullValueHandling.Ignore)] public VolumeErrorV1 AttachError { get; set; } /// /// detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher. /// [YamlMember(Alias = "detachError")] [JsonProperty("detachError", NullValueHandling = NullValueHandling.Ignore)] public VolumeErrorV1 DetachError { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentStatusV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentStatus is the status of a VolumeAttachment request. /// public partial class VolumeAttachmentStatusV1Alpha1 { /// /// Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attachmentMetadata")] [JsonProperty("attachmentMetadata", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary AttachmentMetadata { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAttachmentMetadata() => AttachmentMetadata.Count > 0; /// /// Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attached")] [JsonProperty("attached", NullValueHandling = NullValueHandling.Include)] public bool Attached { get; set; } /// /// The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attachError")] [JsonProperty("attachError", NullValueHandling = NullValueHandling.Ignore)] public VolumeErrorV1Alpha1 AttachError { get; set; } /// /// The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher. /// [YamlMember(Alias = "detachError")] [JsonProperty("detachError", NullValueHandling = NullValueHandling.Ignore)] public VolumeErrorV1Alpha1 DetachError { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentStatusV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachmentStatus is the status of a VolumeAttachment request. /// public partial class VolumeAttachmentStatusV1Beta1 { /// /// Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attachmentMetadata")] [JsonProperty("attachmentMetadata", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary AttachmentMetadata { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeAttachmentMetadata() => AttachmentMetadata.Count > 0; /// /// Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attached")] [JsonProperty("attached", NullValueHandling = NullValueHandling.Include)] public bool Attached { get; set; } /// /// The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. /// [YamlMember(Alias = "attachError")] [JsonProperty("attachError", NullValueHandling = NullValueHandling.Ignore)] public VolumeErrorV1Beta1 AttachError { get; set; } /// /// The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher. /// [YamlMember(Alias = "detachError")] [JsonProperty("detachError", NullValueHandling = NullValueHandling.Ignore)] public VolumeErrorV1Beta1 DetachError { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. /// /// VolumeAttachment objects are non-namespaced. /// [KubeObject("VolumeAttachment", "storage.k8s.io/v1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1/volumeattachments")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1/volumeattachments")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1/volumeattachments/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1/volumeattachments/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1/volumeattachments/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1/volumeattachments/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1/watch/volumeattachments")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1/volumeattachments")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1/volumeattachments/{name}/status")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1/watch/volumeattachments/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1/volumeattachments/{name}/status")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1/volumeattachments/{name}/status")] public partial class VolumeAttachmentV1 : KubeResourceV1 { /// /// spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public VolumeAttachmentSpecV1 Spec { get; set; } /// /// status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public VolumeAttachmentStatusV1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. /// /// VolumeAttachment objects are non-namespaced. /// [KubeObject("VolumeAttachment", "storage.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1alpha1/volumeattachments")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1alpha1/volumeattachments")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1alpha1/volumeattachments/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1alpha1/volumeattachments/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1alpha1/volumeattachments/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1alpha1/volumeattachments/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1alpha1/watch/volumeattachments")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1alpha1/volumeattachments")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1alpha1/watch/volumeattachments/{name}")] public partial class VolumeAttachmentV1Alpha1 : KubeResourceV1 { /// /// Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public VolumeAttachmentSpecV1Alpha1 Spec { get; set; } /// /// Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public VolumeAttachmentStatusV1Alpha1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttachmentV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. /// /// VolumeAttachment objects are non-namespaced. /// [KubeObject("VolumeAttachment", "storage.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1beta1/volumeattachments")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1beta1/volumeattachments")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1beta1/volumeattachments/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1beta1/volumeattachments/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1beta1/volumeattachments/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1beta1/volumeattachments/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1beta1/watch/volumeattachments")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1beta1/volumeattachments")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}")] public partial class VolumeAttachmentV1Beta1 : KubeResourceV1 { /// /// Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system. /// [YamlMember(Alias = "spec")] [JsonProperty("spec", NullValueHandling = NullValueHandling.Include)] public VolumeAttachmentSpecV1Beta1 Spec { get; set; } /// /// Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher. /// [YamlMember(Alias = "status")] [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)] public VolumeAttachmentStatusV1Beta1 Status { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttributesClassListV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttributesClassList is a collection of VolumeAttributesClass objects. /// [KubeListItem("VolumeAttributesClass", "storage.k8s.io/v1alpha1")] [KubeObject("VolumeAttributesClassList", "storage.k8s.io/v1alpha1")] public partial class VolumeAttributesClassListV1Alpha1 : KubeResourceListV1 { /// /// items is the list of VolumeAttributesClass objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttributesClassListV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttributesClassList is a collection of VolumeAttributesClass objects. /// [KubeListItem("VolumeAttributesClass", "storage.k8s.io/v1beta1")] [KubeObject("VolumeAttributesClassList", "storage.k8s.io/v1beta1")] public partial class VolumeAttributesClassListV1Beta1 : KubeResourceListV1 { /// /// items is the list of VolumeAttributesClass objects. /// [JsonProperty("items", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public override List Items { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttributesClassV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning. /// [KubeObject("VolumeAttributesClass", "storage.k8s.io/v1alpha1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1alpha1/volumeattributesclasses")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1alpha1/volumeattributesclasses")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1alpha1/watch/volumeattributesclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1alpha1/volumeattributesclasses")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1alpha1/watch/volumeattributesclasses/{name}")] public partial class VolumeAttributesClassV1Alpha1 : KubeResourceV1 { /// /// Name of the CSI driver This field is immutable. /// [YamlMember(Alias = "driverName")] [JsonProperty("driverName", NullValueHandling = NullValueHandling.Include)] public string DriverName { get; set; } /// /// parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass. /// /// This field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an "Infeasible" state in the modifyVolumeStatus field. /// [YamlMember(Alias = "parameters")] [JsonProperty("parameters", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Parameters { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeParameters() => Parameters.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/VolumeAttributesClassV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning. /// [KubeObject("VolumeAttributesClass", "storage.k8s.io/v1beta1")] [KubeApi(KubeAction.List, "apis/storage.k8s.io/v1beta1/volumeattributesclasses")] [KubeApi(KubeAction.Create, "apis/storage.k8s.io/v1beta1/volumeattributesclasses")] [KubeApi(KubeAction.Get, "apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.Patch, "apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.Delete, "apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.Update, "apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}")] [KubeApi(KubeAction.WatchList, "apis/storage.k8s.io/v1beta1/watch/volumeattributesclasses")] [KubeApi(KubeAction.DeleteCollection, "apis/storage.k8s.io/v1beta1/volumeattributesclasses")] [KubeApi(KubeAction.Watch, "apis/storage.k8s.io/v1beta1/watch/volumeattributesclasses/{name}")] public partial class VolumeAttributesClassV1Beta1 : KubeResourceV1 { /// /// Name of the CSI driver This field is immutable. /// [YamlMember(Alias = "driverName")] [JsonProperty("driverName", NullValueHandling = NullValueHandling.Include)] public string DriverName { get; set; } /// /// parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass. /// /// This field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an "Infeasible" state in the modifyVolumeStatus field. /// [YamlMember(Alias = "parameters")] [JsonProperty("parameters", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Parameters { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeParameters() => Parameters.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/VolumeDeviceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// volumeDevice describes a mapping of a raw block device within a container. /// public partial class VolumeDeviceV1 { /// /// name must match the name of a persistentVolumeClaim in the pod /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// devicePath is the path inside of the container that the device will be mapped to. /// [YamlMember(Alias = "devicePath")] [JsonProperty("devicePath", NullValueHandling = NullValueHandling.Include)] public string DevicePath { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeErrorV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeError captures an error encountered during a volume operation. /// public partial class VolumeErrorV1 { /// /// message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// time represents the time the error was encountered. /// [YamlMember(Alias = "time")] [JsonProperty("time", NullValueHandling = NullValueHandling.Ignore)] public DateTime? Time { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeErrorV1Alpha1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeError captures an error encountered during a volume operation. /// public partial class VolumeErrorV1Alpha1 { /// /// String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Time the error was encountered. /// [YamlMember(Alias = "time")] [JsonProperty("time", NullValueHandling = NullValueHandling.Ignore)] public DateTime? Time { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeErrorV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeError captures an error encountered during a volume operation. /// public partial class VolumeErrorV1Beta1 { /// /// String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information. /// [YamlMember(Alias = "message")] [JsonProperty("message", NullValueHandling = NullValueHandling.Ignore)] public string Message { get; set; } /// /// Time the error was encountered. /// [YamlMember(Alias = "time")] [JsonProperty("time", NullValueHandling = NullValueHandling.Ignore)] public DateTime? Time { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeMountStatusV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeMountStatus shows status of volume mounts. /// public partial class VolumeMountStatusV1 { /// /// Name corresponds to the name of the original VolumeMount. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// MountPath corresponds to the original VolumeMount. /// [YamlMember(Alias = "mountPath")] [JsonProperty("mountPath", NullValueHandling = NullValueHandling.Include)] public string MountPath { get; set; } /// /// ReadOnly corresponds to the original VolumeMount. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } /// /// 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. /// [YamlMember(Alias = "recursiveReadOnly")] [JsonProperty("recursiveReadOnly", NullValueHandling = NullValueHandling.Ignore)] public string RecursiveReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeMountV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeMount describes a mounting of a Volume within a container. /// public partial class VolumeMountV1 { /// /// This must match the Name of a Volume. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// Path within the container at which the volume should be mounted. Must not contain ':'. /// [YamlMember(Alias = "mountPath")] [JsonProperty("mountPath", NullValueHandling = NullValueHandling.Include)] public string MountPath { get; set; } /// /// Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). /// [YamlMember(Alias = "subPath")] [JsonProperty("subPath", NullValueHandling = NullValueHandling.Ignore)] public string SubPath { get; set; } /// /// 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). /// [YamlMember(Alias = "mountPropagation")] [JsonProperty("mountPropagation", NullValueHandling = NullValueHandling.Ignore)] public string MountPropagation { get; set; } /// /// 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. /// [YamlMember(Alias = "subPathExpr")] [JsonProperty("subPathExpr", NullValueHandling = NullValueHandling.Ignore)] public string SubPathExpr { get; set; } /// /// Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. /// [YamlMember(Alias = "readOnly")] [JsonProperty("readOnly", NullValueHandling = NullValueHandling.Ignore)] public bool? ReadOnly { get; set; } /// /// 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. /// [YamlMember(Alias = "recursiveReadOnly")] [JsonProperty("recursiveReadOnly", NullValueHandling = NullValueHandling.Ignore)] public string RecursiveReadOnly { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeNodeAffinityV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from. /// public partial class VolumeNodeAffinityV1 { /// /// required specifies hard node constraints that must be met. /// [YamlMember(Alias = "required")] [JsonProperty("required", NullValueHandling = NullValueHandling.Ignore)] public NodeSelectorV1 Required { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeNodeResourcesV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeNodeResources is a set of resource limits for scheduling of volumes. /// public partial class VolumeNodeResourcesV1 { /// /// count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded. /// [YamlMember(Alias = "count")] [JsonProperty("count", NullValueHandling = NullValueHandling.Ignore)] public int? Count { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeProjectionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Projection that may be projected along with other supported volume types. Exactly one of these fields must be set. /// public partial class VolumeProjectionV1 { /// /// downwardAPI information about the downwardAPI data to project /// [YamlMember(Alias = "downwardAPI")] [JsonProperty("downwardAPI", NullValueHandling = NullValueHandling.Ignore)] public DownwardAPIProjectionV1 DownwardAPI { get; set; } /// /// ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. /// /// Alpha, gated by the ClusterTrustBundleProjection feature gate. /// /// ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. /// /// Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time. /// [YamlMember(Alias = "clusterTrustBundle")] [JsonProperty("clusterTrustBundle", NullValueHandling = NullValueHandling.Ignore)] public ClusterTrustBundleProjectionV1 ClusterTrustBundle { get; set; } /// /// serviceAccountToken is information about the serviceAccountToken data to project /// [YamlMember(Alias = "serviceAccountToken")] [JsonProperty("serviceAccountToken", NullValueHandling = NullValueHandling.Ignore)] public ServiceAccountTokenProjectionV1 ServiceAccountToken { get; set; } /// /// configMap information about the configMap data to project /// [YamlMember(Alias = "configMap")] [JsonProperty("configMap", NullValueHandling = NullValueHandling.Ignore)] public ConfigMapProjectionV1 ConfigMap { get; set; } /// /// secret information about the secret data to project /// [YamlMember(Alias = "secret")] [JsonProperty("secret", NullValueHandling = NullValueHandling.Ignore)] public SecretProjectionV1 Secret { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VolumeResourceRequirementsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// VolumeResourceRequirements describes the storage resource requirements for a volume. /// public partial class VolumeResourceRequirementsV1 { /// /// Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ /// [YamlMember(Alias = "limits")] [JsonProperty("limits", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Limits { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeLimits() => Limits.Count > 0; /// /// Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ /// [YamlMember(Alias = "requests")] [JsonProperty("requests", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public Dictionary Requests { get; } = new Dictionary(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRequests() => Requests.Count > 0; } } ================================================ FILE: src/KubeClient/Models/generated/VolumeV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Volume represents a named volume in a pod that may be accessed by any container in the pod. /// public partial class VolumeV1 { /// /// downwardAPI represents downward API about the pod that should populate this volume /// [YamlMember(Alias = "downwardAPI")] [JsonProperty("downwardAPI", NullValueHandling = NullValueHandling.Ignore)] public DownwardAPIVolumeSourceV1 DownwardAPI { get; set; } /// /// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. /// [YamlMember(Alias = "scaleIO")] [JsonProperty("scaleIO", NullValueHandling = NullValueHandling.Ignore)] public ScaleIOVolumeSourceV1 ScaleIO { get; set; } /// /// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. /// [YamlMember(Alias = "fc")] [JsonProperty("fc", NullValueHandling = NullValueHandling.Ignore)] public FCVolumeSourceV1 Fc { get; set; } /// /// projected items for all in one resources secrets, configmaps, and downward API /// [YamlMember(Alias = "projected")] [JsonProperty("projected", NullValueHandling = NullValueHandling.Ignore)] public ProjectedVolumeSourceV1 Projected { get; set; } /// /// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md /// [YamlMember(Alias = "rbd")] [JsonProperty("rbd", NullValueHandling = NullValueHandling.Ignore)] public RBDVolumeSourceV1 Rbd { get; set; } /// /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore /// [YamlMember(Alias = "awsElasticBlockStore")] [JsonProperty("awsElasticBlockStore", NullValueHandling = NullValueHandling.Ignore)] public AWSElasticBlockStoreVolumeSourceV1 AwsElasticBlockStore { get; set; } /// /// azureFile represents an Azure File Service mount on the host and bind mount to the pod. /// [YamlMember(Alias = "azureFile")] [JsonProperty("azureFile", NullValueHandling = NullValueHandling.Ignore)] public AzureFileVolumeSourceV1 AzureFile { get; set; } /// /// flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. /// [YamlMember(Alias = "flexVolume")] [JsonProperty("flexVolume", NullValueHandling = NullValueHandling.Ignore)] public FlexVolumeSourceV1 FlexVolume { get; set; } /// /// image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: /// /// - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. /// /// The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. /// [YamlMember(Alias = "image")] [JsonProperty("image", NullValueHandling = NullValueHandling.Ignore)] public ImageVolumeSourceV1 Image { get; set; } /// /// name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// portworxVolume represents a portworx volume attached and mounted on kubelets host machine /// [YamlMember(Alias = "portworxVolume")] [JsonProperty("portworxVolume", NullValueHandling = NullValueHandling.Ignore)] public PortworxVolumeSourceV1 PortworxVolume { get; set; } /// /// quobyte represents a Quobyte mount on the host that shares a pod's lifetime /// [YamlMember(Alias = "quobyte")] [JsonProperty("quobyte", NullValueHandling = NullValueHandling.Ignore)] public QuobyteVolumeSourceV1 Quobyte { get; set; } /// /// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine /// [YamlMember(Alias = "vsphereVolume")] [JsonProperty("vsphereVolume", NullValueHandling = NullValueHandling.Ignore)] public VsphereVirtualDiskVolumeSourceV1 VsphereVolume { get; set; } /// /// hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath /// [YamlMember(Alias = "hostPath")] [JsonProperty("hostPath", NullValueHandling = NullValueHandling.Ignore)] public HostPathVolumeSourceV1 HostPath { get; set; } /// /// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). /// [YamlMember(Alias = "csi")] [JsonProperty("csi", NullValueHandling = NullValueHandling.Ignore)] public CSIVolumeSourceV1 Csi { get; set; } /// /// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md /// [YamlMember(Alias = "iscsi")] [JsonProperty("iscsi", NullValueHandling = NullValueHandling.Ignore)] public ISCSIVolumeSourceV1 Iscsi { get; set; } /// /// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. /// [YamlMember(Alias = "azureDisk")] [JsonProperty("azureDisk", NullValueHandling = NullValueHandling.Ignore)] public AzureDiskVolumeSourceV1 AzureDisk { get; set; } /// /// gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk /// [YamlMember(Alias = "gcePersistentDisk")] [JsonProperty("gcePersistentDisk", NullValueHandling = NullValueHandling.Ignore)] public GCEPersistentDiskVolumeSourceV1 GcePersistentDisk { get; set; } /// /// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine /// [YamlMember(Alias = "photonPersistentDisk")] [JsonProperty("photonPersistentDisk", NullValueHandling = NullValueHandling.Ignore)] public PhotonPersistentDiskVolumeSourceV1 PhotonPersistentDisk { get; set; } /// /// ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. /// /// Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity /// tracking are needed, /// c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through /// a PersistentVolumeClaim (see EphemeralVolumeSource for more /// information on the connection between this volume type /// and PersistentVolumeClaim). /// /// Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. /// /// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. /// /// A pod can use both types of ephemeral volumes and persistent volumes at the same time. /// [YamlMember(Alias = "ephemeral")] [JsonProperty("ephemeral", NullValueHandling = NullValueHandling.Ignore)] public EphemeralVolumeSourceV1 Ephemeral { get; set; } /// /// persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims /// [YamlMember(Alias = "persistentVolumeClaim")] [JsonProperty("persistentVolumeClaim", NullValueHandling = NullValueHandling.Ignore)] public PersistentVolumeClaimVolumeSourceV1 PersistentVolumeClaim { get; set; } /// /// gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. /// [YamlMember(Alias = "gitRepo")] [JsonProperty("gitRepo", NullValueHandling = NullValueHandling.Ignore)] public GitRepoVolumeSourceV1 GitRepo { get; set; } /// /// configMap represents a configMap that should populate this volume /// [YamlMember(Alias = "configMap")] [JsonProperty("configMap", NullValueHandling = NullValueHandling.Ignore)] public ConfigMapVolumeSourceV1 ConfigMap { get; set; } /// /// cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md /// [YamlMember(Alias = "cinder")] [JsonProperty("cinder", NullValueHandling = NullValueHandling.Ignore)] public CinderVolumeSourceV1 Cinder { get; set; } /// /// emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir /// [YamlMember(Alias = "emptyDir")] [JsonProperty("emptyDir", NullValueHandling = NullValueHandling.Ignore)] public EmptyDirVolumeSourceV1 EmptyDir { get; set; } /// /// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running /// [YamlMember(Alias = "flocker")] [JsonProperty("flocker", NullValueHandling = NullValueHandling.Ignore)] public FlockerVolumeSourceV1 Flocker { get; set; } /// /// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime /// [YamlMember(Alias = "cephfs")] [JsonProperty("cephfs", NullValueHandling = NullValueHandling.Ignore)] public CephFSVolumeSourceV1 Cephfs { get; set; } /// /// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md /// [YamlMember(Alias = "glusterfs")] [JsonProperty("glusterfs", NullValueHandling = NullValueHandling.Ignore)] public GlusterfsVolumeSourceV1 Glusterfs { get; set; } /// /// nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs /// [YamlMember(Alias = "nfs")] [JsonProperty("nfs", NullValueHandling = NullValueHandling.Ignore)] public NFSVolumeSourceV1 Nfs { get; set; } /// /// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. /// [YamlMember(Alias = "storageos")] [JsonProperty("storageos", NullValueHandling = NullValueHandling.Ignore)] public StorageOSVolumeSourceV1 Storageos { get; set; } /// /// secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret /// [YamlMember(Alias = "secret")] [JsonProperty("secret", NullValueHandling = NullValueHandling.Ignore)] public SecretVolumeSourceV1 Secret { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/VsphereVirtualDiskVolumeSourceV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Represents a vSphere volume resource. /// public partial class VsphereVirtualDiskVolumeSourceV1 { /// /// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. /// [YamlMember(Alias = "storagePolicyID")] [JsonProperty("storagePolicyID", NullValueHandling = NullValueHandling.Ignore)] public string StoragePolicyID { get; set; } /// /// fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. /// [YamlMember(Alias = "fsType")] [JsonProperty("fsType", NullValueHandling = NullValueHandling.Ignore)] public string FsType { get; set; } /// /// storagePolicyName is the storage Policy Based Management (SPBM) profile name. /// [YamlMember(Alias = "storagePolicyName")] [JsonProperty("storagePolicyName", NullValueHandling = NullValueHandling.Ignore)] public string StoragePolicyName { get; set; } /// /// volumePath is the path that identifies vSphere volume vmdk /// [YamlMember(Alias = "volumePath")] [JsonProperty("volumePath", NullValueHandling = NullValueHandling.Include)] public string VolumePath { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/WatchEventV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Event represents a single event to a watched resource. /// public partial class WatchEventV1 { /// /// Description not provided. /// [YamlMember(Alias = "type")] [JsonProperty("type", NullValueHandling = NullValueHandling.Include)] public string Type { get; set; } /// /// Object is: /// * If Type is Added or Modified: the new state of the object. /// * If Type is Deleted: the state of the object immediately before deletion. /// * If Type is Error: *Status is recommended; other types may make sense /// depending on context. /// [YamlMember(Alias = "object")] [JsonProperty("object", NullValueHandling = NullValueHandling.Include)] public RawExtensionRuntime Object { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/WebhookClientConfigV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// WebhookClientConfig contains the information to make a TLS connection with the webhook. /// public partial class WebhookClientConfigV1 { /// /// caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used. /// [YamlMember(Alias = "caBundle")] [JsonProperty("caBundle", NullValueHandling = NullValueHandling.Ignore)] public string CaBundle { get; set; } /// /// service is a reference to the service for this webhook. Either service or url must be specified. /// /// If the webhook is running within the cluster, then you should use `service`. /// [YamlMember(Alias = "service")] [JsonProperty("service", NullValueHandling = NullValueHandling.Ignore)] public ServiceReferenceV1 Service { get; set; } /// /// url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified. /// /// The `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address. /// /// Please note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster. /// /// The scheme must be "https"; the URL must begin with "https://". /// /// A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier. /// /// Attempting to use a user or basic auth e.g. "user:password@" is not allowed. Fragments ("#...") and query parameters ("?...") are not allowed, either. /// [YamlMember(Alias = "url")] [JsonProperty("url", NullValueHandling = NullValueHandling.Ignore)] public string Url { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/WebhookClientConfigV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// WebhookClientConfig contains the information to make a TLS connection with the webhook /// public partial class WebhookClientConfigV1Beta1 { /// /// `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. Required. /// [YamlMember(Alias = "caBundle")] [JsonProperty("caBundle", NullValueHandling = NullValueHandling.Include)] public string CaBundle { get; set; } /// /// `service` is a reference to the service for this webhook. Either `service` or `url` must be specified. /// /// If the webhook is running within the cluster, then you should use `service`. /// /// Port 443 will be used if it is open, otherwise it is an error. /// [YamlMember(Alias = "service")] [JsonProperty("service", NullValueHandling = NullValueHandling.Ignore)] public ServiceReferenceV1Beta1 Service { get; set; } /// /// `url` gives the location of the webhook, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified. /// /// The `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address. /// /// Please note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster. /// /// The scheme must be "https"; the URL must begin with "https://". /// /// A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier. /// /// Attempting to use a user or basic auth e.g. "user:password@" is not allowed. Fragments ("#...") and query parameters ("?...") are not allowed, either. /// [YamlMember(Alias = "url")] [JsonProperty("url", NullValueHandling = NullValueHandling.Ignore)] public string Url { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/WebhookConversionV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// WebhookConversion describes how to call a conversion webhook /// public partial class WebhookConversionV1 { /// /// clientConfig is the instructions for how to call the webhook if strategy is `Webhook`. /// [YamlMember(Alias = "clientConfig")] [JsonProperty("clientConfig", NullValueHandling = NullValueHandling.Ignore)] public WebhookClientConfigV1 ClientConfig { get; set; } /// /// conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. 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. /// [YamlMember(Alias = "conversionReviewVersions")] [JsonProperty("conversionReviewVersions", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List ConversionReviewVersions { get; } = new List(); } } ================================================ FILE: src/KubeClient/Models/generated/WebhookV1Beta1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// Webhook describes an admission webhook and the resources and operations it applies to. /// public partial class WebhookV1Beta1 { /// /// 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. /// [YamlMember(Alias = "name")] [JsonProperty("name", NullValueHandling = NullValueHandling.Include)] public string Name { get; set; } /// /// ClientConfig defines how to communicate with the hook. Required /// [YamlMember(Alias = "clientConfig")] [JsonProperty("clientConfig", NullValueHandling = NullValueHandling.Include)] public WebhookClientConfigV1Beta1 ClientConfig { get; set; } /// /// NamespaceSelector decides whether to run the webhook 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 webhook. /// /// For 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": { /// "matchExpressions": [ /// { /// "key": "runlevel", /// "operator": "NotIn", /// "values": [ /// "0", /// "1" /// ] /// } /// ] /// } /// /// If instead you want to only run the webhook on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { /// "matchExpressions": [ /// { /// "key": "environment", /// "operator": "In", /// "values": [ /// "prod", /// "staging" /// ] /// } /// ] /// } /// /// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. /// /// Default to the empty LabelSelector, which matches everything. /// [YamlMember(Alias = "namespaceSelector")] [JsonProperty("namespaceSelector", NullValueHandling = NullValueHandling.Ignore)] public LabelSelectorV1 NamespaceSelector { get; set; } /// /// Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects. /// [YamlMember(Alias = "rules")] [JsonProperty("rules", ObjectCreationHandling = ObjectCreationHandling.Reuse)] public List Rules { get; } = new List(); /// /// Determine whether the property should be serialised. /// public bool ShouldSerializeRules() => Rules.Count > 0; /// /// FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore. /// [YamlMember(Alias = "failurePolicy")] [JsonProperty("failurePolicy", NullValueHandling = NullValueHandling.Ignore)] public string FailurePolicy { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/WeightedPodAffinityTermV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) /// public partial class WeightedPodAffinityTermV1 { /// /// Required. A pod affinity term, associated with the corresponding weight. /// [YamlMember(Alias = "podAffinityTerm")] [JsonProperty("podAffinityTerm", NullValueHandling = NullValueHandling.Include)] public PodAffinityTermV1 PodAffinityTerm { get; set; } /// /// weight associated with matching the corresponding podAffinityTerm, in the range 1-100. /// [YamlMember(Alias = "weight")] [JsonProperty("weight", NullValueHandling = NullValueHandling.Include)] public int Weight { get; set; } } } ================================================ FILE: src/KubeClient/Models/generated/WindowsSecurityContextOptionsV1.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Models { /// /// WindowsSecurityContextOptions contain Windows-specific options and credentials. /// public partial class WindowsSecurityContextOptionsV1 { /// /// GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. /// [YamlMember(Alias = "gmsaCredentialSpec")] [JsonProperty("gmsaCredentialSpec", NullValueHandling = NullValueHandling.Ignore)] public string GmsaCredentialSpec { get; set; } /// /// GMSACredentialSpecName is the name of the GMSA credential spec to use. /// [YamlMember(Alias = "gmsaCredentialSpecName")] [JsonProperty("gmsaCredentialSpecName", NullValueHandling = NullValueHandling.Ignore)] public string GmsaCredentialSpecName { get; set; } /// /// The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. /// [YamlMember(Alias = "runAsUserName")] [JsonProperty("runAsUserName", NullValueHandling = NullValueHandling.Ignore)] public string RunAsUserName { get; set; } /// /// HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true. /// [YamlMember(Alias = "hostProcess")] [JsonProperty("hostProcess", NullValueHandling = NullValueHandling.Ignore)] public bool? HostProcess { get; set; } } } ================================================ FILE: src/KubeClient/ResourceClientExtensions.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace KubeClient { using ApiMetadata; using Models; using ResourceClients; using System.Text; /// /// Extension methods for various K8s resource clients. /// public static class ResourceClientExtensions { /// /// Update (PATCH) an existing Deployment. /// /// /// The Kubernetes Deployment (v1) API client. /// /// /// A representing the Deployment to update. /// /// /// A delegate that customises the patch operation. /// /// /// A representing the Deployment's current state. /// /// /// An optional that can be used to cancel the request. /// /// /// The state of is not used for update; it is simply convenient shorthand for specifying the deployment's name and namespace. /// public static async Task UpdateDeployment(this IDeploymentClientV1 deploymentClient, DeploymentV1 existingDeployment, Action> patchAction, CancellationToken cancellationToken = default) { if (deploymentClient == null) throw new ArgumentNullException(nameof(deploymentClient)); if (existingDeployment == null) throw new ArgumentNullException(nameof(existingDeployment)); DeploymentV1 updatedDeployment = await deploymentClient.Update(existingDeployment.Metadata.Name, patchAction, existingDeployment.Metadata.Namespace, cancellationToken); // Re-fetch Deployment state so we pick up annotations added or updated by the controller. updatedDeployment = await deploymentClient.Get(updatedDeployment.Metadata.Name, updatedDeployment.Metadata.Namespace, cancellationToken); return updatedDeployment; } /// /// Find the ReplicaSet that corresponds to the specified revision of the specified Deployment. /// /// /// The Kubernetes API client. /// /// /// The target Deployment. /// /// /// The target revision. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the ReplicaSet's current state; null, if no corresponding ReplicaSet was found. /// public static async Task FindReplicaSetForRevision(IKubeApiClient client, DeploymentV1 deployment, int targetRevision, CancellationToken cancellationToken = default) { if (client == null) throw new ArgumentNullException(nameof(client)); if (deployment == null) throw new ArgumentNullException(nameof(deployment)); string matchLabelSelector = deployment.GetLabelSelector(); ReplicaSetListV1 replicaSets = await client.ReplicaSetsV1().List(matchLabelSelector, deployment.Metadata.Namespace, cancellationToken); ReplicaSetV1 targetRevisionReplicaSet = replicaSets.Items.FirstOrDefault( replicaSet => replicaSet.GetRevision() == targetRevision ); return targetRevisionReplicaSet; } /// /// Roll back a Deployment to the revision represented by the specified ReplicaSet. /// /// /// The Kubernetes API client. /// /// /// The target Deployment. /// /// /// The ReplicaSet that represents the target revision. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the Deployment's current state. /// public static async Task RollbackDeployment(IKubeApiClient client, DeploymentV1 existingDeployment, ReplicaSetV1 targetRevisionReplicaSet, CancellationToken cancellationToken = default) { if (client == null) throw new ArgumentNullException(nameof(client)); if (existingDeployment == null) throw new ArgumentNullException(nameof(existingDeployment)); if (targetRevisionReplicaSet == null) throw new ArgumentNullException(nameof(targetRevisionReplicaSet)); int? targetRevision = targetRevisionReplicaSet.GetRevision(); if (targetRevision == null) throw new InvalidOperationException($"Cannot determine Deployment revision represented by ReplicaSet '{targetRevisionReplicaSet.Metadata.Name}' in namespace '{targetRevisionReplicaSet.Metadata.Namespace}'."); DeploymentV1 rolledBackDeployment = await client.DeploymentsV1().Update(existingDeployment.Metadata.Name, kubeNamespace: existingDeployment.Metadata.Namespace, cancellationToken: cancellationToken, patchAction: patch => { // Restore Deployment's Pod-template specification to the one used by the target ReplicaSet. patch.Replace(deployment => deployment.Spec.Template.Spec, value: targetRevisionReplicaSet.Spec.Template.Spec ); // Since the old Rollback API is obsolete (as of v1beta2), we have to update the Deployment's revision by hand. patch.Replace(deployment => deployment.Metadata.Annotations, // Due to JSON-PATCH limitations in the K8s API, we have to replace the entire Annotations property, not attempt to update individual items within the dictionary. value: new Dictionary(existingDeployment.Metadata.Annotations) { [K8sAnnotations.Deployment.Revision] = targetRevision.Value.ToString() } ); }); // Re-fetch Deployment state so we pick up annotations added or updated by the controller. rolledBackDeployment = await client.DeploymentsV1().Get(rolledBackDeployment.Metadata.Name, rolledBackDeployment.Metadata.Namespace, cancellationToken); return rolledBackDeployment; } /// /// Get the Kubernetes resource represented by the specified object reference. /// /// The Kubernetes dynamic resource client. /// The . /// An optional that can be used to cancel the request. /// The resource, as a . /// /// has a null name or kind. /// public static Task Get(this IDynamicResourceClient dynamicResourceClient, ObjectReferenceV1 resourceReference, CancellationToken cancellationToken = default) { if (dynamicResourceClient == null) throw new ArgumentNullException(nameof(dynamicResourceClient)); if (resourceReference == null) throw new ArgumentNullException(nameof(resourceReference)); if (String.IsNullOrWhiteSpace(resourceReference.Kind)) throw new ArgumentException($"{nameof(ObjectReferenceV1)} does not specify 'kind' field.", nameof(resourceReference)); if (String.IsNullOrWhiteSpace(resourceReference.ApiVersion)) resourceReference.ApiVersion = "v1"; if (String.IsNullOrWhiteSpace(resourceReference.Name)) throw new ArgumentException($"{nameof(ObjectReferenceV1)} does not specify 'name' field.", nameof(resourceReference)); return dynamicResourceClient.Get(resourceReference.Name, resourceReference.Kind, resourceReference.ApiVersion, resourceReference.Namespace, cancellationToken); } /// /// List events that apply to the specified Kubernetes resource. /// /// The Kubernetes API client. /// The . /// Only return events newer than the 's ResourceVersion? /// An optional that can be used to cancel the request. /// An containing the relevant events. public static Task List(this IEventClientV1 eventClient, KubeResourceV1 resource, bool onlyNewEvents = false, CancellationToken cancellationToken = default) { if (eventClient == null) throw new ArgumentNullException(nameof(eventClient)); if (resource == null) throw new ArgumentNullException(nameof(resource)); string fieldSelector = BuildInvolvedObjectFieldSelector(resource); return eventClient.List( fieldSelector: fieldSelector, resourceVersion: onlyNewEvents ? resource.Metadata.ResourceVersion : null, cancellationToken: cancellationToken ); } /// /// Watch for events that apply to the specified Kubernetes resource. /// /// The Kubernetes API client. /// The . /// An containing the relevant events. public static IObservable> WatchAll(this IEventClientV1 eventClient, KubeResourceV1 resource) { if (eventClient == null) throw new ArgumentNullException(nameof(eventClient)); if (resource == null) throw new ArgumentNullException(nameof(resource)); string fieldSelector = BuildInvolvedObjectFieldSelector(resource); return eventClient.WatchAll( fieldSelector: fieldSelector, resourceVersion: resource.Metadata.ResourceVersion ); } /// /// Build a Kubernetes field selector for that targets the specified resource. /// /// The . /// The field selector. /// /// is null. /// /// /// has null . /// static string BuildInvolvedObjectFieldSelector(KubeResourceV1 resource) { if (resource == null) throw new ArgumentNullException(nameof(resource)); if (resource.Metadata == null) throw new ArgumentException($"{resource.GetType().Name} has null metadata.", nameof(resource)); StringBuilder fieldSelector = new StringBuilder() .AppendFormat("involvedObject.kind={0}", resource.Kind) .Append(',') .AppendFormat("involvedObject.apiVersion={0}", resource.ApiVersion) .Append(',') .AppendFormat("involvedObject.name={0}", resource.Metadata.Name); if (!String.IsNullOrWhiteSpace(resource.Metadata.Uid)) { fieldSelector .Append(',') .AppendFormat("involvedObject.uid={0}", resource.Metadata.Uid); } if (!String.IsNullOrWhiteSpace(resource.Metadata.Namespace)) { fieldSelector .Append(',') .AppendFormat("involvedObject.namespace={0}", resource.Metadata.Namespace); } return fieldSelector.ToString(); } } } ================================================ FILE: src/KubeClient/ResourceClients/APIGroupClientV1.cs ================================================ using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes APIGroups (v1) API. /// public class APIGroupClientV1 : KubeResourceClient, IAPIGroupClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public APIGroupClientV1(IKubeApiClient client) : base(client) { } /// /// Get all APIGroups with the specified prefix. /// /// /// The prefix for the API groups (usually "api/v1" for core APIs or "apis" for all other APIs). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the APIGroups. /// public async Task List(string prefix = "apis", CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(prefix)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'prefix'.", nameof(prefix)); HttpRequest request = Requests.Collection.WithTemplateParameter("Prefix", prefix); using (HttpResponseMessage responseMessage = await Http.GetAsync(request, cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); throw new KubeClientException($"Unable to list API groups (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, response: await responseMessage.ReadContentAsStatusV1Async(responseMessage.StatusCode).ConfigureAwait(false) ) ); } } /// /// Request templates for the APIGroup (v1) API. /// static class Requests { /// /// A collection-level APIGroup (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("{Prefix}"); } } /// /// Represents a client for the Kubernetes APIGroups (v1) API. /// public interface IAPIGroupClientV1 : IKubeResourceClient { /// /// Get all APIGroups. /// /// /// The prefix for the API groups (usually "api/v1" for core APIs or "/apis" for all other APIs). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the APIGroups. /// Task List(string prefix = "apis", CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/APIResourceClientV1.cs ================================================ using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes APIResources (v1) API. /// public class APIResourceClientV1 : KubeResourceClient, IAPIResourceClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public APIResourceClientV1(IKubeApiClient client) : base(client) { } /// /// Get all APIResources with the specified prefix. /// /// /// The prefix for the API groups (usually "api/v1" for core APIs or "apis" for all other APIs). /// /// /// The API group version. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the APIResources. /// public async Task List(string prefix, string groupVersion, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(prefix)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'prefix'.", nameof(prefix)); HttpRequest request = Requests.Collection .WithTemplateParameters(new { Prefix = prefix, GroupVersion = groupVersion }); using (HttpResponseMessage responseMessage = await Http.GetAsync(request, cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); throw new KubeClientException($"Unable to list API resource types for '{prefix}/{groupVersion}' (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, response: await responseMessage.ReadContentAsStatusV1Async(responseMessage.StatusCode).ConfigureAwait(false) ) ); } } /// /// Request templates for the APIResource (v1) API. /// static class Requests { /// /// A collection-level APIResource (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("{Prefix}/{GroupVersion}"); } } /// /// Represents a client for the Kubernetes APIResources (v1) API. /// public interface IAPIResourceClientV1 : IKubeResourceClient { /// /// Get all APIResources. /// /// /// The prefix for the API groups (usually "api/v1" for core APIs or "apis" for all other APIs). /// /// /// The API group version. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the APIResources. /// Task List(string prefix, string groupVersion, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/ConfigMapClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes ConfigMaps (v1) API. /// public class ConfigMapClientV1 : KubeResourceClient, IConfigMapClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public ConfigMapClientV1(IKubeApiClient client) : base(client) { } /// /// Get the ConfigMap with the specified name. /// /// /// The name of the ConfigMap to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ConfigMap, or null if no ConfigMap was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all ConfigMaps in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ConfigMaps. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the ConfigMaps. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific ConfigMap. /// /// /// The name of the ConfigMap to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/ConfigMap '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Watch for events relating to ConfigMaps. /// /// /// An optional Kubernetes label selector expression used to filter the ConfigMaps. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/ConfigMaps with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the ConfigMap to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ConfigMap. /// public async Task Create(ConfigMapV1 newConfigMap, CancellationToken cancellationToken = default) { if (newConfigMap == null) throw new ArgumentNullException(nameof(newConfigMap)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newConfigMap?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newConfigMap, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: "create v1/ConfigMap resource" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target ConfigMap. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ConfigMap. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified ConfigMap. /// /// /// The name of the ConfigMap to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("delete v1/ConfigMap resource", HttpStatusCode.OK, HttpStatusCode.NotFound); } /// /// Request templates for the ConfigMap (v1) API. /// static class Requests { /// /// A collection-level ConfigMap (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/configmaps?labelSelector={LabelSelector?}"); /// /// A get-by-name ConfigMap (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/configmaps/{Name}"); /// /// A watch-by-name ConfigMap (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("api/v1/watch/namespaces/{Namespace}/configmaps/{Name}"); } } /// /// Represents a client for the Kubernetes ConfigMaps (v1) API. /// public interface IConfigMapClientV1 : IKubeResourceClient { /// /// Get the ConfigMap with the specified name. /// /// /// The name of the ConfigMap to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ConfigMap, or null if no ConfigMap was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all ConfigMaps in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ConfigMaps. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the ConfigMaps. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific ConfigMap. /// /// /// The name of the ConfigMap to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Watch for events relating to ConfigMaps. /// /// /// An optional Kubernetes label selector expression used to filter the ConfigMaps. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the ConfigMap to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ConfigMap. /// Task Create(ConfigMapV1 newConfigMap, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target ConfigMap. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ConfigMap. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified ConfigMap. /// /// /// The name of the ConfigMap to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/DaemonSetClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes DaemonSets (v1) API. /// public class DaemonSetClientV1 : KubeResourceClient, IDaemonSetClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public DaemonSetClientV1(IKubeApiClient client) : base(client) { } /// /// Get the DaemonSet with the specified name. /// /// /// The name of the DaemonSet to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the DaemonSet, or null if no DaemonSet was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (string.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all DaemonSets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the DaemonSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the DaemonSets. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to DaemonSets. /// /// /// An optional Kubernetes label selector expression used to filter the DaemonSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/DaemonSets with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the DaemonSet to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created DaemonSet. /// public async Task Create(DaemonSetV1 newDaemonSet, CancellationToken cancellationToken = default) { if (newDaemonSet == null) throw new ArgumentNullException(nameof(newDaemonSet)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newDaemonSet?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newDaemonSet, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/DaemonSet resource"); } /// /// Request update (PATCH) of a . /// /// /// The name of the target DaemonSet. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated DaemonSet. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified DaemonSet. /// /// /// The name of the DaemonSet to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the DaemonSet's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the DaemonSets (v1) API. /// static class Requests { /// /// A collection-level DaemonSet (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/apps/v1/namespaces/{Namespace}/daemonsets?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name DaemonSet (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/apps/v1/namespaces/{Namespace}/daemonsets/{Name}"); } } /// /// Represents a client for the Kubernetes DaemonSets (v1) API. /// public interface IDaemonSetClientV1 : IKubeResourceClient { /// /// Get the DaemonSet with the specified name. /// /// /// The name of the DaemonSet to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the DaemonSet, or null if no DaemonSet was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all DaemonSets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the DaemonSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the DaemonSets. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to DaemonSets. /// /// /// An optional Kubernetes label selector expression used to filter the DaemonSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the DaemonSet to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created DaemonSet. /// Task Create(DaemonSetV1 newDaemonSet, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target DaemonSet. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated DaemonSet. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified DaemonSet. /// /// /// The name of the DaemonSet to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the DaemonSet's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/DeploymentClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Deployments (v1) API. /// public class DeploymentClientV1 : KubeResourceClient, IDeploymentClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public DeploymentClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Deployment with the specified name. /// /// /// The name of the Deployment to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Deployment, or null if no Deployment was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Deployments in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Deployments. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to Deployments. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/Deployments with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the Deployment to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Deployment. /// public async Task Create(DeploymentV1 newDeployment, CancellationToken cancellationToken = default) { if (newDeployment == null) throw new ArgumentNullException(nameof(newDeployment)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newDeployment?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newDeployment, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/Deployment resource"); } /// /// Request update (PATCH) of a . /// /// /// The name of the target Deployment. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Deployment. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified Deployment. /// /// /// The name of the Deployment to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the deployment's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the Deployments (v1) API. /// static class Requests { /// /// A collection-level Deployment (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/apps/v1/namespaces/{Namespace}/deployments?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name Deployment (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/apps/v1/namespaces/{Namespace}/deployments/{Name}"); } } /// /// Represents a client for the Kubernetes Deployments (v1) API. /// public interface IDeploymentClientV1 : IKubeResourceClient { /// /// Get the Deployment with the specified name. /// /// /// The name of the Deployment to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Deployment, or null if no Deployment was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Deployments in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Deployments. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to Deployments. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the Deployment to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Deployment. /// Task Create(DeploymentV1 newDeployment, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target Deployment. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Deployment. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Deployment. /// /// /// The name of the Deployment to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the deployment's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/DeploymentClientV1Beta1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Deployments (v1beta2) API. /// public class DeploymentClientV1Beta1 : KubeResourceClient, IDeploymentClientV1Beta1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public DeploymentClientV1Beta1(IKubeApiClient client) : base(client) { } /// /// Get the Deployment with the specified name. /// /// /// The name of the Deployment to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Deployment, or null if no Deployment was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Deployments in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Deployments. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to Deployments. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1beta1/Deployments with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the Deployment to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Deployment. /// public async Task Create(DeploymentV1Beta1 newDeployment, CancellationToken cancellationToken = default) { if (newDeployment == null) throw new ArgumentNullException(nameof(newDeployment)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newDeployment?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newDeployment, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1beta1/Deployment resource"); } /// /// Request update (PATCH) of a . /// /// /// The name of the target Deployment. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Deployment. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified Deployment. /// /// /// The name of the Deployment to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the deployment's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the Deployment (v1beta2) API. /// static class Requests { /// /// A collection-level Deployment (v1beta2) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/apps/v1beta1/namespaces/{Namespace}/deployments?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name Deployment (v1beta2) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/apps/v1beta1/namespaces/{Namespace}/deployments/{Name}"); } } /// /// Represents a client for the Kubernetes Deployments (v1beta2) API. /// public interface IDeploymentClientV1Beta1 : IKubeResourceClient { /// /// Get the Deployment with the specified name. /// /// /// The name of the Deployment to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Deployment, or null if no Deployment was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Deployments in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Deployments. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to Deployments. /// /// /// An optional Kubernetes label selector expression used to filter the Deployments. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the Deployment to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Deployment. /// Task Create(DeploymentV1Beta1 newDeployment, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target Deployment. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Deployment. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Deployment. /// /// /// The name of the Deployment to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the deployment's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/DynamicResourceClient.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Http; using System.Reflection; using System.Text; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using ApiMetadata; using Http; using Models; // TODO: Always prefer namespaced API paths (except for List operations) and use client's default namespace. /// /// A client for dynamic access to Kubernetes resource APIs. /// public sealed class DynamicResourceClient : KubeResourceClient, IDynamicResourceClient { /// /// Model CLR types, keyed by resource kind and API version. /// readonly Dictionary<(string kind, string apiVersion), Type> _modelTypeLookup = ModelMetadata.KubeObject.BuildKindToTypeLookup( typeof(KubeObjectV1).GetTypeInfo().Assembly ); /// /// Model CLR types, keyed by resource kind and API version. /// readonly Dictionary<(string kind, string apiVersion), Type> _listModelTypeLookup = ModelMetadata.KubeObject.BuildKindToListTypeLookup( typeof(KubeObjectV1).GetTypeInfo().Assembly ); /// /// Create a new . /// /// /// The Kubernetes API client. /// public DynamicResourceClient(IKubeApiClient client) : base(client) { // Register metadata for additional model types (if any). IReadOnlyList modelTypeAssemblies = KubeClient.GetClientOptions().ModelTypeAssemblies; var assemblyModelTypeLookup = ModelMetadata.KubeObject.BuildKindToTypeLookup(modelTypeAssemblies); foreach (var key in assemblyModelTypeLookup.Keys) _modelTypeLookup[key] = assemblyModelTypeLookup[key]; var assemblyListModelTypeLookup = ModelMetadata.KubeObject.BuildKindToListTypeLookup(modelTypeAssemblies); foreach (var key in assemblyListModelTypeLookup.Keys) _modelTypeLookup[key] = assemblyListModelTypeLookup[key]; } /// /// Metadata for Kubernetes resource APIs. /// public KubeApiMetadataCache ApiMetadata { get; } = new KubeApiMetadataCache(); /// /// Retrieve a single resource by name. /// /// /// The resource name. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The (optional) name of a Kubernetes namespace containing the resource. /// /// /// An optional cancellation token that can be used to cancel the operation. /// /// /// The resource, or null if the resource was not found. /// public async Task Get(string name, string kind, string apiVersion, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); bool isNamespaced = !String.IsNullOrWhiteSpace(kubeNamespace); await EnsureApiMetadata(cancellationToken); string apiPath = GetApiPath(kind, apiVersion, isNamespaced); Type modelType = GetModelType(kind, apiVersion); HttpRequest request = KubeRequest.Create(apiPath).WithRelativeUri("{name}") .WithTemplateParameters(new { name, @namespace = kubeNamespace }); using (HttpResponseMessage responseMessage = await Http.GetAsync(request, cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) { // Code is slightly ugly for types only known at runtime; see if KubeClient.Http could be improved here. using (Stream responseStream = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false)) using (TextReader responseReader = new StreamReader(responseStream)) { JsonSerializer serializer = responseMessage.GetJsonSerializer(); return (KubeResourceV1)serializer.Deserialize(responseReader, modelType); } } // Ensure that HttpStatusCode.NotFound actually refers to the target resource. StatusV1 status = await responseMessage.ReadContentAsStatusV1Async(HttpStatusCode.NotFound).ConfigureAwait(false); if (status.Reason == "NotFound") return null; throw new KubeClientException($"Unable to retrieve {apiVersion}/{kind} resource (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, status) ); } } /// /// List resources. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The (optional) name of a Kubernetes namespace containing the resources. /// /// /// An optional cancellation token that can be used to cancel the operation. /// /// /// The resource list (can be cast to for access to individual resources). /// public async Task List(string kind, string apiVersion, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); bool isNamespaced = !String.IsNullOrWhiteSpace(kubeNamespace); await EnsureApiMetadata(cancellationToken); string apiPath = GetApiPath(kind, apiVersion, isNamespaced); Type listModelType = GetListModelType(kind, apiVersion); HttpRequest request = KubeRequest.Create(apiPath) .WithTemplateParameter("namespace", kubeNamespace); using (HttpResponseMessage responseMessage = await Http.GetAsync(request, cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) { // Code is slightly ugly for types only known at runtime; see if KubeClient.Http could be improved here. using (Stream responseStream = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false)) using (TextReader responseReader = new StreamReader(responseStream)) { JsonSerializer serializer = responseMessage.GetJsonSerializer(); return (KubeResourceListV1)serializer.Deserialize(responseReader, listModelType); } } StatusV1 status = await responseMessage.ReadContentAsStatusV1Async(HttpStatusCode.NotFound).ConfigureAwait(false); throw new KubeClientException($"Unable to list {apiVersion}/{kind} resources (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, status) ); } } /// /// Perform a JSON patch operation on a Kubernetes resource. /// /// /// The resource name. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// A representing the patch operation(s) to perform. /// /// /// The (optional) name of a Kubernetes namespace containing the resources. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// public async Task Patch(string name, string kind, string apiVersion, JsonPatchDocument patch, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); if (patch == null) throw new ArgumentNullException(nameof(patch)); bool isNamespaced = !String.IsNullOrWhiteSpace(kubeNamespace); await EnsureApiMetadata(cancellationToken); string apiPath = GetApiPath(kind, apiVersion, isNamespaced); Type modelType = GetModelType(kind, apiVersion); HttpRequest request = KubeRequest.Create(apiPath).WithRelativeUri("{name}") .WithTemplateParameters(new { name = name, @namespace = kubeNamespace }); using (HttpResponseMessage responseMessage = await Http.PatchAsync(request, patchBody: patch, mediaType: PatchMediaType, cancellationToken: cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) { // Code is slightly ugly for types only known at runtime; see if KubeClient.Http could be improved here. using (Stream responseStream = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false)) using (TextReader responseReader = new StreamReader(responseStream)) { JsonSerializer serializer = responseMessage.GetJsonSerializer(); return (KubeResourceV1)serializer.Deserialize(responseReader, modelType); } } // Ensure that HttpStatusCode.NotFound actually refers to the target resource. StatusV1 status = await responseMessage.ReadContentAsStatusV1Async(HttpStatusCode.NotFound).ConfigureAwait(false); if (status.Reason == "NotFound") { string errorMessage = isNamespaced ? $"Unable to patch {apiVersion}/{kind} resource '{name}' in namespace '{kubeNamespace}' (resource not found)." : $"Unable to patch {apiVersion}/{kind} resource '{name}' (resource not found)."; throw new KubeClientException(errorMessage); } throw new KubeClientException($"Unable to patch {apiVersion}/{kind} resource (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, status) ); } } /// /// Create a Kubernetes resource. /// /// /// The type of resource to create. /// /// /// A representing the resource to create. /// /// /// Is the resource type commonly namespaced? /// /// In other words, does the resource's API path contain a "{namespace}" segment? /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the newly-created resource. /// public async Task Create(TResource resource, bool isNamespaced = true, CancellationToken cancellationToken = default) where TResource : KubeResourceV1 { if (resource == null) throw new ArgumentNullException(nameof(resource)); await EnsureApiMetadata(cancellationToken); (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); string apiPath = GetApiPath(kind, apiVersion, isNamespaced); HttpRequest request = KubeRequest.Create(apiPath); if (isNamespaced) { request = request.WithTemplateParameters(new { @namespace = resource.Metadata?.Namespace ?? KubeClient.DefaultNamespace }); } return await Http .PostAsJsonAsync(request, postBody: resource, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: isNamespaced ? $"create {apiVersion}/{kind} resource in namespace {resource?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}" : $"create {apiVersion}/{kind} resource" ); } /// /// Update a Kubernetes resource using a server-side apply operation. /// /// /// The type of resource to update. /// /// /// A representing the resource to update. /// /// /// The name of the field manager to use when performing the server-side apply. /// /// /// Allow the field manager to take ownership of fields if required? /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// public async Task Apply(TResource resource, string fieldManager, bool force = false, CancellationToken cancellationToken = default) where TResource : KubeResourceV1 { if (resource == null) throw new ArgumentNullException(nameof(resource)); if (String.IsNullOrWhiteSpace(fieldManager)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(fieldManager)}.", nameof(fieldManager)); await EnsureApiMetadata(cancellationToken); string resourceYaml; using (StringWriter yamlWriter = new StringWriter()) { Yaml.Serialize(resource, yamlWriter); resourceYaml = yamlWriter.ToString(); } KubeResourceV1 appliedResource = await ApplyYaml( resource.Metadata.Name, resource.Kind, resource.ApiVersion, resourceYaml, fieldManager, force, kubeNamespace: resource.Metadata.Namespace, cancellationToken ); return (TResource)appliedResource; } /// /// Update a Kubernetes resource using a server-side apply operation with the specified YAML. /// /// /// The resource name. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// A string containing the resource YAML. /// /// /// The name of the field manager to use when performing the server-side apply. /// /// /// Allow the field manager to take ownership of fields if required? /// /// /// The (optional) name of a Kubernetes namespace containing the resources. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// public async Task ApplyYaml(string name, string kind, string apiVersion, string yaml, string fieldManager, bool force = false, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); if (String.IsNullOrWhiteSpace(yaml)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(yaml)}.", nameof(yaml)); bool isNamespaced = !String.IsNullOrWhiteSpace(kubeNamespace); await EnsureApiMetadata(cancellationToken); string apiPath = GetApiPath(kind, apiVersion, isNamespaced); Type modelType = GetModelType(kind, apiVersion); HttpRequest request = KubeRequest.Create(apiPath).WithRelativeUri("{name}?fieldManager={fieldManager?}&force={force?}") .WithTemplateParameters(new { name, @namespace = kubeNamespace, fieldManager, force = force ? "true" : null }); using (StringContent patchBody = new StringContent(yaml, Encoding.UTF8, ApplyPatchYamlMediaType)) using (HttpResponseMessage responseMessage = await Http.PatchAsync(request, patchBody, mediaType: ApplyPatchYamlMediaType, cancellationToken: cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) { // Code is slightly ugly for types only known at runtime; see if KubeClient.Http could be improved here. using (Stream responseStream = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false)) using (TextReader responseReader = new StreamReader(responseStream)) { JsonSerializer serializer = responseMessage.GetJsonSerializer(); return (KubeResourceV1)serializer.Deserialize(responseReader, modelType); } } // Ensure that HttpStatusCode.NotFound actually refers to the target resource. StatusV1 status = await responseMessage.ReadContentAsStatusV1Async(HttpStatusCode.NotFound).ConfigureAwait(false); if (status.Reason == "NotFound") { string errorMessage = isNamespaced ? $"Unable to patch {apiVersion}/{kind} resource '{name}' in namespace '{kubeNamespace}' using server-side apply (resource not found)." : $"Unable to patch {apiVersion}/{kind} resource '{name}' using server-side apply (resource not found)."; throw new KubeClientException(errorMessage); } throw new KubeClientException($"Unable to patch {apiVersion}/{kind} resource (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, status) ); } } /// /// Request deletion of the specified resource. /// /// /// The name of the resource to delete. /// /// /// The kind of resource to delete. /// /// /// The API version of the resource to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the resource's most recent state before it was deleted, if is ; otherwise, a indicating the operation result. /// public async Task> Delete(string name, string kind, string apiVersion, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); bool isNamespaced = !String.IsNullOrWhiteSpace(kubeNamespace); await EnsureApiMetadata(cancellationToken); string apiPath = GetApiPath(kind, apiVersion, isNamespaced); Type modelType = GetModelType(kind, apiVersion); string operationDescription = $"delete {apiVersion}/{kind} resource '{name}' in namespace '{kubeNamespace}'"; return await Http .DeleteAsJsonAsync( request: KubeRequest.Create(apiPath).WithRelativeUri("{name}").WithTemplateParameters(new { name, @namespace = kubeNamespace }), deleteBody: new DeleteOptionsV1 { PropagationPolicy = propagationPolicy } ) .ReadContentAsResourceOrStatusV1(modelType, operationDescription, HttpStatusCode.OK, HttpStatusCode.NotFound); } /// /// Ensure that the API metadata cache is populated. /// /// /// A that can be used to cancel the operation. /// /// /// A representing the asynchronous operation. /// async Task EnsureApiMetadata(CancellationToken cancellationToken) { await Task.Yield(); if (ApiMetadata.IsEmpty) { ApiMetadata.LoadFromMetadata( typeof(KubeObjectV1).GetTypeInfo().Assembly ); foreach (Assembly modelTypeAssembly in KubeClient.GetClientOptions().ModelTypeAssemblies) ApiMetadata.LoadFromMetadata(modelTypeAssembly); if (ApiMetadata.IsEmpty) // Never happens (consider async preload *as a configurable option* and otherwise implement as a read-through cache) await ApiMetadata.Load(KubeClient, cancellationToken: cancellationToken); } } /// /// Get the primary path for the specified Kubernetes resource API. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// Require a path with Kubernetes namespace support? /// /// /// The resource API path. /// string GetApiPath(string kind, string apiVersion, bool namespaced) { // TODO: Add KubeAction parameter to improve path resolution. if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); KubeApiMetadata apiMetadata = ApiMetadata.Get(kind, apiVersion); if (apiMetadata == null) throw new KubeClientException($"Cannot find resource API for kind '{kind}', apiVersion '{apiVersion}'."); KubeApiPathMetadata apiPathMetadata = namespaced ? apiMetadata.PrimaryNamespacedPathMetadata : apiMetadata.PrimaryPathMetadata; if (apiPathMetadata == null) { if (namespaced) throw new KubeClientException($"Resource API for {apiVersion}/{kind} only supports listing resources within a specific namespace."); else throw new KubeClientException($"Resource API for {apiVersion}/{kind} does not support listing resources within a specific namespace."); } return apiPathMetadata.Path; } /// /// Get the CLR of the model that corresponds to the specified Kubernetes resource type. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The model . /// Type GetModelType(string kind, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); Type modelType; if (!_modelTypeLookup.TryGetValue((kind, apiVersion), out modelType)) throw new KubeClientException($"Cannot determine the model type that corresponds to {apiVersion}/{kind}."); return modelType; } /// /// Get the CLR of the list model that corresponds to the specified Kubernetes resource type. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The model . /// Type GetListModelType(string kind, string apiVersion) { if (String.IsNullOrWhiteSpace(kind)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'kind'.", nameof(kind)); if (String.IsNullOrWhiteSpace(apiVersion)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiVersion'.", nameof(apiVersion)); Type listModelType; if (!_listModelTypeLookup.TryGetValue((kind, apiVersion), out listModelType)) throw new KubeClientException($"Cannot determine the list model type that corresponds to {apiVersion}/{kind}."); return listModelType; } } /// /// Represents a client for dynamic access to Kubernetes resource APIs. /// public interface IDynamicResourceClient : IKubeResourceClient { /// /// Metadata for Kubernetes resource APIs. /// KubeApiMetadataCache ApiMetadata { get; } /// /// Retrieve a single resource by name. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The resource name. /// /// /// The (optional) name of a Kubernetes namespace containing the resource. /// /// /// An optional cancellation token that can be used to cancel the operation. /// /// /// The resource, or null if the resource was not found. /// Task Get(string name, string kind, string apiVersion, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// List resources. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// The (optional) name of a Kubernetes namespace containing the resources. /// /// /// An optional cancellation token that can be used to cancel the operation. /// /// /// The resource list (can be cast to for access to individual resources). /// Task List(string kind, string apiVersion, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Create a Kubernetes resource. /// /// /// The type of resource to create. /// /// /// A representing the resource to create. /// /// /// Is the resource namespaced? /// /// In other words, does the resource's API path contain a "{namespace}" segment? /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// Task Create(TResource resource, bool isNamespaced = true, CancellationToken cancellationToken = default) where TResource : KubeResourceV1; /// /// Perform a JSON patch operation on a Kubernetes resource. /// /// /// The resource name. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// A representing the patch operation(s) to perform. /// /// /// The (optional) name of a Kubernetes namespace containing the resources. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// Task Patch(string name, string kind, string apiVersion, JsonPatchDocument patch, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Update a Kubernetes resource using a server-side apply operation. /// /// /// The type of resource to update. /// /// /// A representing the resource to update. /// /// /// The name of the field manager to use when performing the server-side apply. /// /// /// Allow the field manager to take ownership of fields if required? /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// Task Apply(TResource resource, string fieldManager, bool force = false, CancellationToken cancellationToken = default) where TResource : KubeResourceV1; /// /// Update a Kubernetes resource using a server-side apply operation with the specified YAML. /// /// /// The resource name. /// /// /// The resource kind. /// /// /// The resource API version. /// /// /// A string containing the resource YAML. /// /// /// The name of the field manager to use when performing the server-side apply. /// /// /// Allow the field manager to take ownership of fields if required? /// /// /// The (optional) name of a Kubernetes namespace containing the resources. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// Task ApplyYaml(string name, string kind, string apiVersion, string yaml, string fieldManager, bool force = false, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified resource. /// /// /// The name of the resource to delete. /// /// /// The kind of resource to delete. /// /// /// The API version of the resource to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the resource's most recent state before it was deleted, if is ; otherwise, a indicating the operation result. /// Task> Delete(string name, string kind, string apiVersion, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/EventClientV1.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Events (v1) API. /// public class EventClientV1 : KubeResourceClient, IEventClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public EventClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Event with the specified name. /// /// /// The name of the Event to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Event, or null if no Event was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Events in the specified namespace, optionally matching a label selector. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional Kubernetes label selector expression used to filter the Events. /// /// /// An optional Kubernetes field selector expression used to filter the Events. /// /// /// An optional Kubernetes resource version () indicating that only events for newer versions should be returned. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the events. /// public async Task List(string labelSelector = null, string fieldSelector = null, string resourceVersion = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, FieldSelector = fieldSelector, ResourceVersion = resourceVersion }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to Events. /// /// /// An optional Kubernetes label selector expression used to filter the Events. /// /// /// An optional Kubernetes field selector expression used to filter the Events. /// /// /// An optional Kubernetes resource version () indicating that only events for newer versions should be returned. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string fieldSelector = null, string resourceVersion = null, string kubeNamespace = null) { return ObserveEvents( Requests.WatchCollection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, FieldSelector = fieldSelector, ResourceVersion = resourceVersion }), operationDescription: $"watch all v1/Events with label selector '{labelSelector ?? ""}', field selector '{fieldSelector ?? ""}', and resource version '{resourceVersion ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request templates for the Event (v1) API. /// static class Requests { /// /// A collection-level Event (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("/api/v1/namespaces/{Namespace}/events?labelSelector={LabelSelector?}&fieldSelector={FieldSelector?}&resourceVersion={ResourceVersion?}"); /// /// A get-by-name Event (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("/api/v1/namespaces/{Namespace}/events/{Name}"); /// /// A collection-level Event watch (v1) request. /// public static readonly HttpRequest WatchCollection = KubeRequest.Create("/api/v1/watch/namespaces/{Namespace}/events?labelSelector={LabelSelector?}&fieldSelector={FieldSelector?}&resourceVersion={ResourceVersion?}"); } } /// /// Represents a client for the Kubernetes Events (v1) API. /// public interface IEventClientV1 : IKubeResourceClient { /// /// Get the Event with the specified name. /// /// /// The name of the Event to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Event, or null if no Event was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Events in the specified namespace, optionally matching a label selector. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional Kubernetes label selector expression used to filter the Events. /// /// /// An optional Kubernetes field selector expression used to filter the Events. /// /// /// An optional Kubernetes resource version () indicating that only events for newer versions should be returned. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the events. /// Task List(string labelSelector = null, string fieldSelector = null, string resourceVersion = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to Events. /// /// /// An optional Kubernetes label selector expression used to filter the Events. /// /// /// An optional Kubernetes field selector expression used to filter the Events. /// /// /// An optional Kubernetes resource version () indicating that only events for newer versions should be returned. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string fieldSelector = null, string resourceVersion = null, string kubeNamespace = null); } } ================================================ FILE: src/KubeClient/ResourceClients/HttpExtensions.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Reflection; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Http.Formatters; using Http.Formatters.Json; using Models; /// /// Extension methods for KubeClient.Http types. /// public static class HttpExtensions { /// /// The CLR representing . /// static readonly TypeInfo KubeResourceV1TypeInfo = typeof(KubeResourceV1).GetTypeInfo(); /// /// Read response content as a . /// /// /// A representing the HTTP response. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The response content, as a . /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsStatusV1Async(this Task response, params HttpStatusCode[] successStatusCodes) { try { return await response.ReadContentAsAsync(successStatusCodes); } catch (HttpRequestException requestError) { throw new KubeApiException(requestError.Response, requestError); } } /// /// Read response content as a . /// /// /// The HTTP response. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The response content, as a . /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsStatusV1Async(this HttpResponseMessage response, params HttpStatusCode[] successStatusCodes) { try { return await response.ReadContentAsAsync(successStatusCodes); } catch (HttpRequestException requestError) { throw new KubeApiException(requestError.Response, requestError); } } /// /// Read response content as a . /// /// /// The HTTP response. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The response content, as a . /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsObjectV1Async(this Task response, params HttpStatusCode[] successStatusCodes) where TObject : KubeObjectV1 { try { return await response.ReadContentAsAsync(successStatusCodes); } catch (HttpRequestException requestError) { throw new KubeApiException(requestError.Response, requestError); } } /// /// Read response content as either a or a resource.. /// /// /// The expected resource type. /// /// /// The HTTP response. /// /// /// A short description of the operation represented by the request (used in exception message if request was not successful). /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The response content, as a . /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task> ReadContentAsResourceOrStatusV1(this Task response, string operationDescription, params HttpStatusCode[] successStatusCodes) where TResource : KubeResourceV1 { if (response == null) throw new ArgumentNullException(nameof(response)); (string expectedKind, string expectedApiVersion) = KubeObjectV1.GetKubeKind(); HttpResponseMessage responseMessage = null; try { responseMessage = await response; JObject responseJson = await responseMessage.ReadContentAsAsync(successStatusCodes); string actualKind = responseJson.Value("kind"); if (actualKind == null) throw new KubeClientException($"Unable to {operationDescription}: received an invalid response from the Kubernetes API (expected a resource, but response was missing 'kind' property)."); string actualApiVersion = responseJson.Value("apiVersion"); if (actualKind == null) throw new KubeClientException($"Unable to {operationDescription}: received an invalid response from the Kubernetes API (expected a resource, but response was missing 'apiVersion' property)."); JsonSerializer serializer = responseMessage.GetJsonSerializer(); if ((actualKind, actualApiVersion) == (expectedKind, expectedApiVersion)) return serializer.Deserialize(responseJson.CreateReader()); else if ((actualKind, actualApiVersion) == ("Status", "v1")) return serializer.Deserialize(responseJson.CreateReader()); else throw new KubeClientException($"Unable to {operationDescription}: received an unexpected response from the Kubernetes API (should be v1/Status or {expectedApiVersion}/{expectedKind}, but was {actualApiVersion}/{actualKind})."); } catch (HttpRequestException requestError) { throw new KubeApiException(requestError.Response, requestError); } finally { responseMessage?.Dispose(); } } /// /// Read response content as either a or a resource model derived from . /// /// /// The HTTP response. /// /// /// The CLR representing the model for the resource. /// /// /// A short description of the operation represented by the request (used in exception message if request was not successful). /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The response content, as a . /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task> ReadContentAsResourceOrStatusV1(this Task response, Type modelType, string operationDescription, params HttpStatusCode[] successStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (modelType == null) throw new ArgumentNullException(nameof(modelType)); if (!KubeResourceV1TypeInfo.IsAssignableFrom(modelType.GetTypeInfo())) throw new ArgumentException($"Model type '{modelType.FullName}' does not derive from '{KubeResourceV1TypeInfo.FullName}'.", nameof(modelType)); (string expectedKind, string expectedApiVersion) = KubeObjectV1.GetKubeKind(modelType); if (String.IsNullOrWhiteSpace(expectedKind)) throw new ArgumentException($"Model type '{modelType.FullName}' has not been decorated with KubeResourceAttribute or KubeResourceListAttribute.", nameof(modelType)); HttpResponseMessage responseMessage = null; try { responseMessage = await response; JObject responseJson = await responseMessage.ReadContentAsAsync(successStatusCodes); string actualKind = responseJson.Value("kind"); if (actualKind == null) throw new KubeClientException($"Unable to {operationDescription}: received an invalid response from the Kubernetes API (expected a resource, but response was missing 'kind' property)."); string actualApiVersion = responseJson.Value("apiVersion"); if (actualKind == null) throw new KubeClientException($"Unable to {operationDescription}: received an invalid response from the Kubernetes API (expected a resource, but response was missing 'apiVersion' property)."); JsonSerializer serializer = responseMessage.GetJsonSerializer(); if ((actualKind, actualApiVersion) == (expectedKind, expectedApiVersion)) return (KubeResourceV1)serializer.Deserialize(responseJson.CreateReader(), modelType); else if ((actualKind, actualApiVersion) == ("Status", "v1")) return serializer.Deserialize(responseJson.CreateReader()); else throw new KubeClientException($"Unable to {operationDescription}: received an unexpected response from the Kubernetes API (should be v1/Status or {expectedApiVersion}/{expectedKind}, but was {actualApiVersion}/{actualKind})."); } catch (HttpRequestException requestError) { throw new KubeApiException(requestError.Response, requestError); } finally { responseMessage?.Dispose(); } } /// /// Read response content as a . /// /// /// The HTTP response. /// /// /// A short description of the operation represented by the request (used in exception message if request was not successful). /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The response content, as a . /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsObjectV1Async(this Task response, string operationDescription, params HttpStatusCode[] successStatusCodes) where TObject : KubeObjectV1 { try { return await response.ReadContentAsAsync(successStatusCodes); } catch (HttpRequestException requestError) { throw new KubeApiException($"Unable to {operationDescription}.", requestError); } } /// /// Creates a using settings from the s /// configured for the . /// Falls back to if there is none. /// public static JsonSerializer GetJsonSerializer(this HttpResponseMessage response) { return JsonSerializer.Create(response.GetFormatters().GetJsonSerializerSettings()); } /// /// Gets the from a set of . /// Falls back to if there is none. /// public static JsonSerializerSettings GetJsonSerializerSettings(this IEnumerable formatters) { return formatters.OfType().FirstOrDefault()?.SerializerSettings ?? KubeResourceClient.SerializerSettings; } } } ================================================ FILE: src/KubeClient/ResourceClients/IngressClientV1Beta1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Ingress (v1beta1) API. /// public class IngressClientV1Beta1 : KubeResourceClient, IIngressClientV1Beta1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public IngressClientV1Beta1(IKubeApiClient client) : base(client) { } /// /// Get the Ingress with the specified name. /// /// /// The name of the Ingress to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Ingress, or null if no Ingress was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Ingresses in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Ingresses. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Ingresses. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific Ingress. /// /// /// The name of the Ingress to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/Ingress '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Watch for events relating to Ingresses. /// /// /// An optional Kubernetes label selector expression used to filter the Ingresses. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/Ingresses with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of an . /// /// /// A representing the Ingress to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Ingress. /// public async Task Create(IngressV1Beta1 newIngress, CancellationToken cancellationToken = default) { if (newIngress == null) throw new ArgumentNullException(nameof(newIngress)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newIngress?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newIngress, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: "create v1/Ingress resource" ); } /// /// Request update (PATCH) of an . /// /// /// The name of the target Ingress. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Ingress. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified Ingress. /// /// /// The name of the Ingress to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("delete v1beta1/Ingress resource", HttpStatusCode.OK, HttpStatusCode.NotFound); } /// /// Request templates for the Ingress (v1beta1) API. /// static class Requests { /// /// A collection-level Ingress (v1beta1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/extensions/v1beta1/namespaces/{Namespace}/ingresses?labelSelector={LabelSelector?}"); /// /// A get-by-name Ingress (v1beta1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/extensions/v1beta1/namespaces/{Namespace}/ingresses/{Name}"); /// /// A watch-by-name Ingress (v1beta1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("apis/extensions/v1beta1/watch/namespaces/{Namespace}/ingresses/{Name}"); } } /// /// Represents a client for the Kubernetes Ingress (v1beta1) API. /// public interface IIngressClientV1Beta1 : IKubeResourceClient { /// /// Get the Ingress with the specified name. /// /// /// The name of the Ingress to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Ingress, or null if no Ingress was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Ingresses in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Ingresses. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Ingresses. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific Ingress. /// /// /// The name of the Ingress to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Watch for events relating to Ingresses. /// /// /// An optional Kubernetes label selector expression used to filter the Ingresses. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of an . /// /// /// A representing the Ingress to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Ingress. /// Task Create(IngressV1Beta1 newIngress, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of an . /// /// /// The name of the target Ingress. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Ingress. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Ingress. /// /// /// The name of the Ingress to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/JobClientV1.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Jobs (v1) API. /// public class JobClientV1 : KubeResourceClient, IJobClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public JobClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Job with the specified name. /// /// /// The name of the Job to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Job, or null if no Job was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Jobs in the specified namespace, optionally matching a label selector. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional Kubernetes label selector expression used to filter the Jobs. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the jobs. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific Job. /// /// /// The name of the job to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/Job '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Watch for events relating to Jobs. /// /// /// An optional Kubernetes label selector expression used to filter the Jobs. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.WatchCollection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), operationDescription: $"watch all v1/Jobs with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the Job to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Job. /// public async Task Create(JobV1 newJob, CancellationToken cancellationToken = default) { if (newJob == null) throw new ArgumentNullException(nameof(newJob)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newJob?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newJob, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/Job resource"); } /// /// Request deletion of the specified Job. /// /// /// The name of the Job to delete. /// /// /// The Kubernetes namespace containing the Job to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the job's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the Job (v1) API. /// static class Requests { /// /// A collection-level Job (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/batch/v1/namespaces/{Namespace}/jobs?labelSelector={LabelSelector?}"); /// /// A get-by-name Job (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/batch/v1/namespaces/{Namespace}/jobs/{Name}"); /// /// A collection-level Job watch (v1) request. /// public static readonly HttpRequest WatchCollection = KubeRequest.Create("apis/batch/v1/watch/namespaces/{Namespace}/jobs?labelSelector={LabelSelector?}"); /// /// A watch-by-name Job (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("apis/batch/v1/watch/namespaces/{Namespace}/jobs/{Name}"); } } /// /// Represents a client for the Kubernetes Jobs (v1) API. /// public interface IJobClientV1 : IKubeResourceClient { /// /// Get the Job with the specified name. /// /// /// The name of the Job to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Job, or null if no Job was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Jobs in the specified namespace, optionally matching a label selector. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional Kubernetes label selector expression used to filter the Jobs. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the jobs. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific Job. /// /// /// The name of the job to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Watch for events relating to Jobs. /// /// /// An optional Kubernetes label selector expression used to filter the Jobs. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the Job to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Job. /// Task Create(JobV1 newJob, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Job. /// /// /// The name of the Job to delete. /// /// /// The Kubernetes namespace containing the Job to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the job's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/KubeResourceClient.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using System; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Reactive; using System.Reactive.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Http.Formatters.Json; using Models; using Models.ContractResolvers; using Models.Converters; using Utilities; /// /// The base class for Kubernetes resource API clients. /// public abstract class KubeResourceClient : IKubeResourceClient { /// /// The default even /// public static readonly EventId DefaultEventId = new EventId(8500, typeof(KubeResourceClient).FullName); /// /// The default buffer size to use when streaming data from the Kubernetes API. /// protected const int DefaultStreamingBufferSize = 2048; /// /// The media type used to indicate that request is a Kubernetes PATCH request. /// protected static readonly string PatchMediaType = "application/json-patch+json"; /// /// The media type used to indicate that request is a Kubernetes merge-style PATCH request. /// protected static readonly string MergePatchMediaType = "application/merge-patch+json"; /// /// The media type used to indicate that request is a Kubernetes server-side-apply PATCH request in JSON format. /// protected static readonly string ApplyPatchJsonMediaType = "application/apply-patch+json"; /// /// The media type used to indicate that request is a Kubernetes server-side-apply PATCH request in YAML format. /// protected static readonly string ApplyPatchYamlMediaType = "application/apply-patch+yaml"; /// /// JSON serialisation settings. /// public static JsonSerializerSettings SerializerSettings => new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ContractResolver = new KubeContractResolver(), Converters = { new StringEnumConverter(), new Int32OrStringV1Converter() } }; /// /// The factory for Kubernetes API requests. /// protected static HttpRequestFactory KubeRequest { get; } = new HttpRequestFactory( HttpRequest.Empty.ExpectJson().WithFormatter(new NewtonsoftJsonFormatter { SerializerSettings = SerializerSettings, SupportedMediaTypes = { PatchMediaType, MergePatchMediaType } }) ); /// /// Create a new . /// /// /// The Kubernetes API client. /// protected KubeResourceClient(IKubeApiClient client) { if (client == null) throw new ArgumentNullException(nameof(client)); KubeClient = client; } /// /// The Kubernetes API client. /// public IKubeApiClient KubeClient { get; } /// /// The Kubernetes API client (for ). /// IKubeApiClient IKubeResourceClient.KubeClient => KubeClient; /// /// The underlying HTTP client. /// protected HttpClient Http => KubeClient.Http; /// /// An used to create loggers for client components. /// protected ILoggerFactory LoggerFactory => KubeClient.LoggerFactory; /// /// Get a single resource, returning null if it does not exist. /// /// /// The type of resource to retrieve. /// /// /// An representing the resource to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the resource, or null if no resource was found with the specified name and namespace. /// protected async Task GetSingleResource(HttpRequest request, CancellationToken cancellationToken = default) where TResource : KubeResourceV1 { if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpResponseMessage responseMessage = await Http.GetAsync(request, cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); // Ensure that HttpStatusCode.NotFound actually refers to the target resource. StatusV1 status = await responseMessage.ReadContentAsStatusV1Async(HttpStatusCode.NotFound).ConfigureAwait(false); if (status.Reason == "NotFound") return null; // If possible, tell the consumer which resource type we had a problem with (helpful when all you find is the error message in the log). (string itemKind, string itemApiVersion) = KubeObjectV1.GetKubeKind(); string resourceTypeDescription = !String.IsNullOrWhiteSpace(itemKind) ? $"{itemKind} ({itemApiVersion}) resource" : typeof(TResource).Name; throw new KubeApiException($"Unable to retrieve {resourceTypeDescription} (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, response: await responseMessage.ReadContentAsStatusV1Async(responseMessage.StatusCode).ConfigureAwait(false) ) ); } } /// /// Get a list of resources. /// /// /// The type of resource list to retrieve. /// /// /// An representing the resource to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the resources. /// protected async Task GetResourceList(HttpRequest request, CancellationToken cancellationToken = default) where TResourceList : KubeResourceListV1 { if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpResponseMessage responseMessage = await Http.GetAsync(request, cancellationToken).ConfigureAwait(false)) { if (responseMessage.IsSuccessStatusCode) return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); // If possible, tell the consumer which resource type we had a problem with (helpful when all you find is the error message in the log). (string itemKind, string itemApiVersion) = KubeResourceListV1.GetListItemKubeKind(); string resourceTypeDescription = !String.IsNullOrWhiteSpace(itemKind) ? $"{itemKind} ({itemApiVersion}) resources" : typeof(TResourceList).Name; throw new KubeApiException($"Unable to list {resourceTypeDescription} (HTTP status {responseMessage.StatusCode}).", innerException: new HttpRequestException(responseMessage.StatusCode, response: await responseMessage.ReadContentAsStatusV1Async(responseMessage.StatusCode).ConfigureAwait(false) ) ); } } /// /// Perform a JSON patch operation on a Kubernetes resource. /// /// /// The target resource type. /// /// /// A delegate that performs customisation of the patch operation. /// /// /// An representing the patch request. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// protected async Task PatchResource(Action> patchAction, HttpRequest request, CancellationToken cancellationToken) where TResource : KubeResourceV1 { if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); if (request == null) throw new ArgumentNullException(nameof(request)); // If possible, tell the consumer which resource type we had a problem with (helpful when all you find is the error message in the log). (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); var patch = new JsonPatchDocument(); patchAction(patch); return await Http.PatchAsync(request, patchBody: patch, mediaType: PatchMediaType, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"patch {apiVersion}/{kind} resource" ) .ConfigureAwait(false); } /// /// Perform a JSON patch operation on a Kubernetes resource. /// /// /// The target resource type. /// /// /// A delegate that performs customisation of the patch operation. /// /// /// An representing the patch request. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the updated resource. /// protected async Task PatchResourceRaw(Action patchAction, HttpRequest request, CancellationToken cancellationToken) where TResource : KubeResourceV1 { if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); if (request == null) throw new ArgumentNullException(nameof(request)); // If possible, tell the consumer which resource type we had a problem with (helpful when all you find is the error message in the log). (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); var patch = new JsonPatchDocument(); patchAction(patch); return await Http.PatchAsync(request, patchBody: patch, mediaType: PatchMediaType, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"patch {apiVersion}/{kind} resource" ) .ConfigureAwait(false); } /// /// Request deletion of the specified resource. /// /// /// The type of resource to delete. /// /// /// The HTTP request template for addressing a by name. /// /// /// The name of the resource to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the resource's most recent state before it was deleted, if is ; otherwise, a indicating the operation result. /// protected async Task> DeleteResource(HttpRequest resourceByNameRequestTemplate, string name, string kubeNamespace, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) where TResource : KubeResourceV1 { if (resourceByNameRequestTemplate == null) throw new ArgumentNullException(nameof(resourceByNameRequestTemplate)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (String.IsNullOrWhiteSpace(kubeNamespace)) kubeNamespace = KubeClient.DefaultNamespace; var response = Http.DeleteAsJsonAsync( resourceByNameRequestTemplate.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), deleteBody: new DeleteOptionsV1 { PropagationPolicy = propagationPolicy }, cancellationToken: cancellationToken ); (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); string operationDescription = $"delete {apiVersion}/{kind} resource '{name}' in namespace '{kubeNamespace}'"; return await response.ReadContentAsResourceOrStatusV1(operationDescription, HttpStatusCode.OK, HttpStatusCode.NotFound); } /// /// Request deletion of the specified global (non-namespaced) resource. /// /// /// The type of resource to delete. /// /// /// The HTTP request template for addressing a non-namespaced by name. /// /// /// The name of the resource to delete. /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the resource's most recent state before it was deleted, if is ; otherwise, a indicating the operation result. /// protected async Task> DeleteGlobalResource(HttpRequest resourceByNameNoNamespaceRequestTemplate, string name, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) where TResource : KubeResourceV1 { if (resourceByNameNoNamespaceRequestTemplate == null) throw new ArgumentNullException(nameof(resourceByNameNoNamespaceRequestTemplate)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); var response = Http.DeleteAsJsonAsync( resourceByNameNoNamespaceRequestTemplate.WithTemplateParameters(new { Name = name }), deleteBody: new DeleteOptionsV1 { PropagationPolicy = propagationPolicy }, cancellationToken: cancellationToken ); (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); string operationDescription = $"delete {apiVersion}/{kind} resource '{name}'"; return await response.ReadContentAsResourceOrStatusV1(operationDescription, HttpStatusCode.OK, HttpStatusCode.NotFound); } /// /// Get an for s streamed from an HTTP GET request. /// /// /// The resource type that the events relate to. /// /// /// The to execute. /// /// /// A short description of the operation (used in error messages if the request fails). /// /// /// The . /// protected IObservable> ObserveEvents(HttpRequest request, string operationDescription) where TResource : KubeResourceV1 { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(operationDescription)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'operationDescription'.", nameof(operationDescription)); JsonSerializerSettings serializerSettings = request.GetFormatters().Values.GetJsonSerializerSettings(); ILogger logger = LoggerFactory.CreateLogger(GetType()); // If we have already observed any events, we only want to see ones newer than the last one we have seen so far. string lastObservedResourceVersion = null; return ObserveLinesWithRetry(operationDescription, requestFactory: () => { HttpRequest currentRequest = request; if (!String.IsNullOrWhiteSpace(lastObservedResourceVersion)) currentRequest = currentRequest.WithQueryParameter("resourceVersion", lastObservedResourceVersion); return currentRequest; }, shouldRetry: exception => exception == null // Only retry if there was no exception ) .Do( line => CheckForEventError(line, operationDescription) ) .Select( line => (IResourceEventV1)JsonConvert.DeserializeObject>(line, serializerSettings) ) .Do(resourceEvent => { lastObservedResourceVersion = resourceEvent.Resource.Metadata.ResourceVersion; }); } /// /// Get an for dynamically-typed s streamed from an HTTP GET request. /// /// /// The to execute. /// /// /// A short description of the operation (used in error messages if the request fails). /// /// /// The . /// /// If you have custom model types you need to deserialise, ensure that their assemblies are added to . protected IObservable> ObserveEventsDynamic(HttpRequest request, string operationDescription) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(operationDescription)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'operationDescription'.", nameof(operationDescription)); JsonSerializer eventSerializer = JsonSerializer.Create( request.GetFormatters().Values.GetJsonSerializerSettings() ); eventSerializer.Converters.Add( new ResourceEventV1Converter( KubeClient.GetClientOptions().ModelTypeAssemblies ) ); ILogger logger = LoggerFactory.CreateLogger(GetType()); // If we have already observed any events, we only want to see ones newer than the last one we have seen so far. string lastObservedResourceVersion = null; return ObserveLinesWithRetry(operationDescription, requestFactory: () => { HttpRequest currentRequest = request; if (!String.IsNullOrWhiteSpace(lastObservedResourceVersion)) currentRequest = currentRequest.WithQueryParameter("resourceVersion", lastObservedResourceVersion); return currentRequest; }, shouldRetry: exception => exception == null // Only retry if there was no exception ) .Do( line => CheckForEventError(line, operationDescription) ) .Select(line => { IResourceEventV1 resourceEvent; using (StringReader lineReader = new StringReader(line)) using (JsonReader lineJsonReader = new JsonTextReader(lineReader)) { resourceEvent = eventSerializer.Deserialize>(lineJsonReader); } return resourceEvent; }) .Do(resourceEvent => { lastObservedResourceVersion = resourceEvent.Resource.Metadata.ResourceVersion; }); } /// /// Get an for lines streamed from an HTTP GET request. /// /// /// The to execute. /// /// /// A short description of the operation (used in error messages if the request fails). /// /// /// The buffer size to use when streaming data. /// /// Default is 2048 bytes. /// /// /// The . /// protected IObservable ObserveLines(HttpRequest request, string operationDescription, int bufferSize = DefaultStreamingBufferSize) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(operationDescription)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'operationDescription'.", nameof(operationDescription)); return ObserveLines( requestFactory: () => request, operationDescription, bufferSize ); } /// /// Get an for lines streamed from an HTTP GET request. /// /// /// A delegate that produces the to execute. /// /// /// A short description of the operation (used in error messages if the request fails). /// /// /// The buffer size to use when streaming data. /// /// Default is 2048 bytes. /// /// /// The . /// protected IObservable ObserveLines(Func requestFactory, string operationDescription, int bufferSize = DefaultStreamingBufferSize) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (String.IsNullOrWhiteSpace(operationDescription)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'operationDescription'.", nameof(operationDescription)); return Observable.Create(async (subscriber, subscriptionCancellationToken) => { // NOTE: The CancellationToken above represents the subscriber (i.e. IObserver) subscription to this sequence (i.e. IObservable), and is canceled only when their subscription is disposed. ILogger logger = LoggerFactory.CreateLogger(GetType()); try { HttpRequest request = requestFactory().WithRequestAction((HttpRequestMessage requestMessage) => { logger.LogDebug("Start streaming {RequestMethod} request for {RequestUri}...", HttpMethod.Get, requestMessage.RequestUri.SafeGetPathAndQuery()); }); using (HttpResponseMessage responseMessage = await Http.GetStreamedAsync(request, subscriptionCancellationToken).ConfigureAwait(false)) { if (!responseMessage.IsSuccessStatusCode) { throw HttpRequestException.Create(responseMessage.StatusCode, await responseMessage.ReadContentAsStatusV1Async().ConfigureAwait(false) ); } MediaTypeHeaderValue contentTypeHeader = responseMessage.Content.Headers.ContentType; if (contentTypeHeader == null) throw new KubeClientException($"Unable to {operationDescription} (response is missing 'Content-Type' header)."); Encoding encoding = !String.IsNullOrWhiteSpace(contentTypeHeader.CharSet) ? Encoding.GetEncoding(contentTypeHeader.CharSet) : Encoding.UTF8; Decoder decoder = encoding.GetDecoder(); using (Stream responseStream = await responseMessage.Content.ReadAsStreamAsync().ConfigureAwait(false)) { StringBuilder lineBuilder = new StringBuilder(); byte[] buffer = new byte[bufferSize]; int bytesRead = await responseStream.ReadAsync(buffer, 0, buffer.Length, subscriptionCancellationToken).ConfigureAwait(false); while (bytesRead > 0) { // AF: Slightly inefficient because we wind up scanning the buffer twice. char[] decodedCharacters = new char[decoder.GetCharCount(buffer, 0, bytesRead)]; int charactersDecoded = decoder.GetChars(buffer, 0, bytesRead, decodedCharacters, 0); for (int charIndex = 0; charIndex < charactersDecoded; charIndex++) { const char CR = '\r'; const char LF = '\n'; char decodedCharacter = decodedCharacters[charIndex]; switch (decodedCharacter) { case CR: { if (charIndex < charactersDecoded - 1 && decodedCharacters[charIndex + 1] == LF) { charIndex++; goto case LF; } break; } case LF: { string line = lineBuilder.ToString(); lineBuilder.Clear(); subscriber.OnNext(line); break; } default: { lineBuilder.Append(decodedCharacter); break; } } } bytesRead = await responseStream.ReadAsync(buffer, 0, buffer.Length, subscriptionCancellationToken).ConfigureAwait(false); } // If stream doesn't end with a line-terminator sequence, publish trailing characters as the last line. if (lineBuilder.Length > 0) { subscriber.OnNext( lineBuilder.ToString() ); } } } } catch (OperationCanceledException operationCanceled) when (operationCanceled.CancellationToken == subscriptionCancellationToken) { // Don't bother publishing if subscriber has already disconnected (this CancellationToken represents the subscription). } catch (HttpRequestException requestError) { logger.LogError(new EventId(0, "NoEventId"), requestError, "Unexpected error while streaming from the Kubernetes API to {operationDescription}.", operationDescription); if (!subscriptionCancellationToken.IsCancellationRequested) { subscriber.OnError( new KubeClientException($"Unexpected error while streaming from the Kubernetes API to {operationDescription}.", requestError) ); } } catch (Exception exception) { logger.LogError(new EventId(0, "NoEventId"), exception, "Unexpected error while streaming from the Kubernetes API to {operationDescription}.", operationDescription); if (!subscriptionCancellationToken.IsCancellationRequested) subscriber.OnError(exception); } finally { if (!subscriptionCancellationToken.IsCancellationRequested) // Don't bother publishing if subscriber has already disconnected. subscriber.OnCompleted(); } }); } /// /// Get an (with automatic retry) for lines streamed from an HTTP GET request. /// /// /// A short description of the operation (used in error messages if the request fails). /// /// /// A delegate that produces the to execute. /// /// /// A delegate that returns true, if the operation should be retried (i.e. sequence continues); otherwise, false. /// /// /// If the retry is due to successful completion of the underlying sequence of lines (), the exception passed to the delegate be null. /// If the retry is due to an exception (), the exception will be passed to the delegate. /// /// /// /// The buffer size to use when streaming data. /// /// Default is 2048 bytes. /// /// /// The . /// protected IObservable ObserveLinesWithRetry(string operationDescription, Func requestFactory, Func shouldRetry, int bufferSize = DefaultStreamingBufferSize) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (String.IsNullOrWhiteSpace(operationDescription)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(operationDescription)}.", nameof(operationDescription)); if (shouldRetry == null) throw new ArgumentNullException(nameof(shouldRetry)); HttpRequest currentRequest = requestFactory(); ILogger logger = LoggerFactory.CreateLogger(GetType()); return ObserveLines(requestFactory, operationDescription, bufferSize) .RetryWhen(exceptions => Observable.Create((IObserver retrySignal) => { return exceptions.Subscribe( onNext: (Exception sourceError) => { if (sourceError != null) logger.LogWarning(sourceError, "ObserveLinesWithRetry: encountered an exception in the retry-handler's source sequence."); else logger.LogWarning("ObserveLinesWithRetry: encountered a null value in the retry-handler's source sequence."); if (shouldRetry(sourceError)) { logger.LogDebug("ObserveLinesWithRetry: will seamlessly continue the event sequence, because shouldRetry returned true."); retrySignal.OnNext(Unit.Default); // Retry (this will seamlessly continue the sequence). } else { logger.LogDebug("ObserveLinesWithRetry: will terminate the event sequence, propagating the exception to sequence subscribers, because shouldRetry returned false."); retrySignal.OnError(sourceError); // Bubble up (this will terminate the sequence with an error). } }, onError: (Exception exceptionSourceError) => { logger.LogError(exceptionSourceError, "ObserveLinesWithRetry: encountered an exception in the retry-handler's signal sequence."); // Under normal circumstances this should not be called, and so we never retry from here. retrySignal.OnError(exceptionSourceError); // Bubble up (this will terminate the sequence with an error). }, onCompleted: () => { if (shouldRetry(null)) // Continue the sequence forever. retrySignal.OnNext(Unit.Default); // Retry (this will seamlessly continue the sequence). else retrySignal.OnCompleted(); // Bubble up (this will terminate the sequence). } ); })); } /// /// Check if an error was encountered in an event stream. /// /// /// The current line in the event stream. /// /// /// A short description of the operation being performed (used in exception message if an error is encountered). /// static void CheckForEventError(string line, string operationDescription) { JToken watchEvent = JToken.Parse(line); if (!watchEvent.SelectToken("type").Value().Equals("error", StringComparison.OrdinalIgnoreCase)) return; StatusV1 status = watchEvent.SelectToken("object").ToObject(); throw new KubeApiException($"Unable to {operationDescription}.", status); } } } ================================================ FILE: src/KubeClient/ResourceClients/NamespaceClientV1.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Namespaces (v1) API. /// public class NamespaceClientV1 : KubeResourceClient, INamespaceClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public NamespaceClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Namespace with the specified name. /// /// /// The name of the Namespace to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Namespace, or null if no Namespace was found with the specified name and namespace. /// public async Task Get(string name, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name }), cancellationToken: cancellationToken ); } /// /// Get all Namespaces in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Namespaces. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Namespaces. /// public async Task List(string labelSelector = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific Namespace. /// /// /// The name of the Namespace to watch. /// /// /// An representing the event stream. /// public IObservable> Watch(string name) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name }), operationDescription: $"watch v1/Namespace '{name}'" ); } /// /// Request creation of a . /// /// /// A representing the Namespace to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Namespace. /// public async Task Create(NamespaceV1 newNamespace, CancellationToken cancellationToken = default) { if (newNamespace == null) throw new ArgumentNullException(nameof(newNamespace)); return await Http .PostAsJsonAsync(Requests.Collection, postBody: newNamespace, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/Namespace resource"); } /// /// Request deletion of the specified Namespace. /// /// /// The name of the Namespace to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the namespace's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteGlobalResource(Requests.ByName, name, propagationPolicy, cancellationToken); } /// /// Request templates for the Namespace (v1) API. /// static class Requests { /// /// A collection-level Namespace (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces?labelSelector={LabelSelector?}"); /// /// A get-by-name Namespace (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Name}"); /// /// A watch-by-name Namespace (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("api/v1/watch/namespaces/{Name}"); } } /// /// Represents a client for the Kubernetes Namespaces (v1) API. /// public interface INamespaceClientV1 : IKubeResourceClient { /// /// Get the Namespace with the specified name. /// /// /// The name of the Namespace to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Namespace, or null if no Namespace was found with the specified name and namespace. /// Task Get(string name, CancellationToken cancellationToken = default); /// /// Get all Namespaces in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Namespaces. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Namespaces. /// Task List(string labelSelector = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific Namespace. /// /// /// The name of the Namespace to watch. /// /// /// An representing the event stream. /// IObservable> Watch(string name); /// /// Request creation of a . /// /// /// A representing the Namespace to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Namespace. /// Task Create(NamespaceV1 newNamespace, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Namespace. /// /// /// The name of the Namespace to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the namespace's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/NetworkPolicyClientV1.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes NetworkPolicy resources (v1) API. /// public class NetworkPolicyClientV1 : KubeResourceClient, INetworkPolicyClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public NetworkPolicyClientV1(IKubeApiClient client) : base(client) { } /// /// Get the NetworkPolicy with the specified name. /// /// /// The name of the NetworkPolicy to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the NetworkPolicy, or null if no NetworkPolicy was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all NetworkPolicy resources in the specified namespace, optionally matching a label selector. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional Kubernetes label selector expression used to filter the NetworkPolicy resources. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the NetworkPolicys. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific NetworkPolicy. /// /// /// The name of the NetworkPolicy to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/NetworkPolicy '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Watch for events relating to NetworkPolicy resources. /// /// /// An optional Kubernetes label selector expression used to filter the NetworkPolicy resources. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.WatchCollection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), operationDescription: $"watch all v1/NetworkPolicy with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the NetworkPolicy to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created NetworkPolicy. /// public async Task Create(NetworkPolicyV1 newNetworkPolicy, CancellationToken cancellationToken = default) { if (newNetworkPolicy == null) throw new ArgumentNullException(nameof(newNetworkPolicy)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newNetworkPolicy?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newNetworkPolicy, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/NetworkPolicy resource"); } /// /// Request deletion of the specified NetworkPolicy. /// /// /// The name of the NetworkPolicy to delete. /// /// /// The Kubernetes namespace containing the NetworkPolicy to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the NetworkPolicy's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the NetworkPolicy (v1) API. /// static class Requests { /// /// A collection-level NetworkPolicy (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/networking.k8s.io/v1/namespaces/{Namespace}/networkpolicies?labelSelector={LabelSelector?}"); /// /// A get-by-name NetworkPolicy (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/networking.k8s.io/v1/namespaces/{Namespace}/networkpolicies/{Name}"); /// /// A collection-level NetworkPolicy watch (v1) request. /// public static readonly HttpRequest WatchCollection = KubeRequest.Create("apis/networking.k8s.io/v1/watch/namespaces/{Namespace}/networkpolicies?labelSelector={LabelSelector?}"); /// /// A watch-by-name NetworkPolicy (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("apis/networking.k8s.io/v1/watch/namespaces/{Namespace}/networkpolicies/{Name}"); } } /// /// Represents a client for the Kubernetes NetworkPolicy resources (v1) API. /// public interface INetworkPolicyClientV1 : IKubeResourceClient { /// /// Get the NetworkPolicy with the specified name. /// /// /// The name of the NetworkPolicy to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the NetworkPolicy, or null if no NetworkPolicy was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all NetworkPolicy resources in the specified namespace, optionally matching a label selector. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional Kubernetes label selector expression used to filter the NetworkPolicy resources. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the NetworkPolicys. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific NetworkPolicy. /// /// /// The name of the NetworkPolicy to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Watch for events relating to NetworkPolicy resources. /// /// /// An optional Kubernetes label selector expression used to filter the NetworkPolicy resources. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the NetworkPolicy to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created NetworkPolicy. /// Task Create(NetworkPolicyV1 newNetworkPolicy, CancellationToken cancellationToken = default); /// /// Request deletion of the specified NetworkPolicy. /// /// /// The name of the NetworkPolicy to delete. /// /// /// The Kubernetes namespace containing the NetworkPolicy to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the NetworkPolicy's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/NodeClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Nodes (v1) API. /// public class NodeClientV1 : KubeResourceClient, INodeClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public NodeClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Node with the specified name. /// /// /// The name of the Node to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Node, or null if no Node was found with the specified name. /// public async Task Get(string name, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name }), cancellationToken: cancellationToken ); } /// /// Get all Nodes, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Nodes. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Nodes. /// public async Task List(string labelSelector = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to Nodes. /// /// /// An optional Kubernetes label selector expression used to filter the Nodes. /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/nodes with label selector '{labelSelector ?? ""}'" ); } /// /// Request creation of a . /// /// /// A representing the Node to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Node. /// public async Task Create(NodeV1 newNode, CancellationToken cancellationToken = default) { if (newNode == null) throw new ArgumentNullException(nameof(newNode)); return await Http .PostAsJsonAsync( Requests.Collection, postBody: newNode, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/node resource"); } /// /// Request update (PATCH) of a . /// /// /// The name of the target Node. /// /// /// A delegate that customises the patch operation. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Node. /// public async Task Update(string name, Action> patchAction, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, }), cancellationToken ); } /// /// Request deletion of the specified Node. /// /// /// The name of the Node to delete. /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("delete v1/node resource", HttpStatusCode.OK, HttpStatusCode.NotFound); } /// /// Request templates for the Nodes (v1) API. /// public static class Requests { /// /// A collection-level Node (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/nodes?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name Node (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/nodes/{Name}"); } } /// /// A client for the Kubernetes Nodes (v1) API. /// public interface INodeClientV1 : IKubeResourceClient { /// /// Get the Node with the specified name. /// /// /// The name of the Node to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Node, or null if no Node was found with the specified name. /// Task Get(string name, CancellationToken cancellationToken = default); /// /// Get all Nodes, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Nodes. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Nodes. /// Task List(string labelSelector = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to Nodes. /// /// /// An optional Kubernetes label selector expression used to filter the Nodes. /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null); /// /// Request creation of a . /// /// /// A representing the Node to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Node. /// Task Create(NodeV1 newNode, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target Node. /// /// /// A delegate that customises the patch operation. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Node. /// Task Update(string name, Action> patchAction, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Node. /// /// /// The name of the Node to delete. /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/PersistentVolumeClaimClientV1.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes PersistentVolumeClaims (v1) API. /// public class PersistentVolumeClaimClientV1 : KubeResourceClient, IPersistentVolumeClaimClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public PersistentVolumeClaimClientV1(IKubeApiClient client) : base(client) { } /// /// Get the PersistentVolumeClaim with the specified name. /// /// /// The name of the PersistentVolumeClaim to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the PersistentVolumeClaim, or null if no PersistentVolumeClaim was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all PersistentVolumeClaims in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the PersistentVolumeClaims. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the PersistentVolumeClaims. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Request creation of a . /// /// /// A representing the PersistentVolumeClaim to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created PersistentVolumeClaim. /// public async Task Create(PersistentVolumeClaimV1 newPersistentVolumeClaim, CancellationToken cancellationToken = default) { if (newPersistentVolumeClaim == null) throw new ArgumentNullException(nameof(newPersistentVolumeClaim)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newPersistentVolumeClaim?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newPersistentVolumeClaim, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/PersistentVolumeClaim resource"); } /// /// Request deletion of the specified PersistentVolumeClaim. /// /// /// The name of the PersistentVolumeClaim to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// A value indicating how (or if) dependent resources should be deleted. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the persistent volume claim's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the PersistentVolumeClaim (v1) API. /// static class Requests { /// /// A collection-level PersistentVolumeClaim (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/persistentvolumeclaims?labelSelector={LabelSelector?}"); /// /// A get-by-name PersistentVolumeClaim (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/persistentvolumeclaims/{Name}"); } } /// /// A client for the Kubernetes PersistentVolumeClaims (v1) API. /// public interface IPersistentVolumeClaimClientV1 : IKubeResourceClient { /// /// Get the PersistentVolumeClaim with the specified name. /// /// /// The name of the PersistentVolumeClaim to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the PersistentVolumeClaim, or null if no PersistentVolumeClaim was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all PersistentVolumeClaims in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the PersistentVolumeClaims. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the PersistentVolumeClaims. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request creation of a . /// /// /// A representing the PersistentVolumeClaim to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created PersistentVolumeClaim. /// Task Create(PersistentVolumeClaimV1 newPersistentVolumeClaim, CancellationToken cancellationToken = default); /// /// Request deletion of the specified PersistentVolumeClaim. /// /// /// The name of the PersistentVolumeClaim to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// A value indicating how (or if) dependent resources should be deleted. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the persistent volume claim's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/PersistentVolumeClientV1.cs ================================================ using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes PersistentVolumes (v1) API. /// public class PersistentVolumeClientV1 : KubeResourceClient, IPersistentVolumeClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public PersistentVolumeClientV1(IKubeApiClient client) : base(client) { } /// /// Get the PersistentVolume with the specified name. /// /// /// The name of the PersistentVolume to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the PersistentVolume, or null if no PersistentVolume was found with the specified name. /// public async Task Get(string name, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name }), cancellationToken: cancellationToken ); } /// /// Get all PersistentVolumes, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the PersistentVolumes. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the PersistentVolumes. /// public async Task List(string labelSelector = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to PersistentVolumes. /// /// /// An optional Kubernetes label selector expression used to filter the PersistentVolumes. /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/PersistentVolumes with label selector '{labelSelector ?? ""}'" ); } /// /// Request creation of a . /// /// /// A representing the PersistentVolume to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created PersistentVolume. /// public async Task Create(PersistentVolumeV1 newPersistentVolume, CancellationToken cancellationToken = default) { if (newPersistentVolume == null) throw new ArgumentNullException(nameof(newPersistentVolume)); return await Http .PostAsJsonAsync( Requests.Collection, postBody: newPersistentVolume, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/PersistentVolume resource"); } /// /// Request deletion of the specified PersistentVolume. /// /// /// The name of the PersistentVolume to delete. /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("delete v1/PersistentVolume resource", HttpStatusCode.OK, HttpStatusCode.NotFound); } /// /// Request templates for the PersistentVolumes (v1) API. /// public static class Requests { /// /// A collection-level PersistentVolume (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/persistentvolumes?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name PersistentVolume (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/persistentvolumes/{Name}"); } } /// /// A client for the Kubernetes PersistentVolumes (v1) API. /// public interface IPersistentVolumeClientV1 : IKubeResourceClient { /// /// Get the PersistentVolume with the specified name. /// /// /// The name of the PersistentVolume to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the PersistentVolume, or null if no PersistentVolume was found with the specified name. /// Task Get(string name, CancellationToken cancellationToken = default); /// /// Get all PersistentVolumes, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the PersistentVolumes. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the PersistentVolumes. /// Task List(string labelSelector = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to PersistentVolumes. /// /// /// An optional Kubernetes label selector expression used to filter the PersistentVolumes. /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null); /// /// Request creation of a . /// /// /// A representing the PersistentVolume to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created PersistentVolume. /// Task Create(PersistentVolumeV1 newPersistentVolume, CancellationToken cancellationToken = default); /// /// Request deletion of the specified PersistentVolume. /// /// /// The name of the PersistentVolume to delete. /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/PodClientV1.cs ================================================ using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Pods (v1) API. /// public class PodClientV1 : KubeResourceClient, IPodClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public PodClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Pod with the specified name. /// /// /// The name of the Pod to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Pod, or null if no Pod was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Pods in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Pods. /// /// /// An optional Kubernetes field selector expression used to filter the Pods. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Pods. /// public async Task List(string labelSelector = null, string fieldSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, FieldSelector = fieldSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to Pods. /// /// /// An optional Kubernetes label selector expression used to filter the Pods. /// /// /// An optional Kubernetes field selector expression used to filter the Pods. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string fieldSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, FieldSelector = fieldSelector, Watch = true }), operationDescription: $"watch all v1/Pods with label selector '{labelSelector ?? ""}' and field selector '{fieldSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Get the combined logs for the Pod with the specified name. /// /// /// The name of the target Pod. /// /// /// The name of the container. /// /// Not required if the pod only has a single container. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// Limit the number of bytes returned (optional). /// /// /// The number of lines from the end of the log to show (optional). /// /// If not specified, logs are since from the creation of the container. /// /// /// Return previous terminated container logs (defaults to false)? /// /// /// An optional that can be used to cancel the request. /// /// /// A string containing the logs. /// public async Task Logs(string name, string containerName = null, string kubeNamespace = null, int? limitBytes = null, int? tailLines = null, bool? previous = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); HttpResponseMessage responseMessage = await Http.GetAsync( Requests.Logs.WithTemplateParameters(new { Name = name, ContainerName = containerName, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LimitBytes = limitBytes, TailLines = tailLines, Previous = previous?.ToString().ToLowerInvariant() }), cancellationToken ); using (responseMessage) { if (responseMessage.IsSuccessStatusCode) return await responseMessage.Content.ReadAsStringAsync(); throw new KubeClientException($"Unable to retrieve logs for container '{containerName ?? ""}' of v1/Pod '{name}' in namespace '{kubeNamespace ?? KubeClient.DefaultNamespace}'.", innerException: new HttpRequestException(responseMessage.StatusCode, response: await responseMessage.ReadContentAsStatusV1Async(responseMessage.StatusCode).ConfigureAwait(false) )); } } /// /// Stream the combined logs for the Pod with the specified name. /// /// /// The name of the target Pod. /// /// /// The name of the container. /// /// Not required if the pod only has a single container. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// Limit the number of bytes returned (optional). /// /// /// The number of lines from the end of the log to show (optional). /// /// If not specified, logs are since from the creation of the container. /// /// /// An sequence of lines from the log. /// public IObservable StreamLogs(string name, string containerName = null, string kubeNamespace = null, int? limitBytes = null, int? tailLines = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveLines( Requests.Logs.WithTemplateParameters(new { Name = name, ContainerName = containerName, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LimitBytes = limitBytes, TailLines = tailLines, Follow = "true" }), operationDescription: $"stream logs for v1/Pod '{name}' (container '{containerName ?? ""}') in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the Pod to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Pod. /// public async Task Create(PodV1 newPod, CancellationToken cancellationToken = default) { if (newPod == null) throw new ArgumentNullException(nameof(newPod)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newPod?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newPod, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/Pod resource in namespace {newPod?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request deletion of the specified Pod. /// /// /// The name of the Pod to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the pod's most recent state before it was deleted, if is ; otherwise, a indicating the operation result. /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the Pods (v1) API. /// public static class Requests { /// /// A collection-level Pod (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/pods?labelSelector={LabelSelector?}&fieldSelector={FieldSelector?}&watch={Watch?}"); /// /// A get-by-name Pod (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/pods/{Name}"); /// /// A get-logs Pod (v1) request. /// public static readonly HttpRequest Logs = ByName.WithRelativeUri("log?container={ContainerName?}&follow={Follow?}&limitBytes={LimitBytes?}&tailLines={TailLines?}&previous={Previous?}"); } } /// /// Represents a client for the Kubernetes Pods (v1) API. /// public interface IPodClientV1 : IKubeResourceClient { /// /// Get the Pod with the specified name. /// /// /// The name of the Pod to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Pod, or null if no Pod was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Pods in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Pods. /// /// /// An optional Kubernetes field selector expression used to filter the Pods. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Pods. /// Task List(string labelSelector = null, string fieldSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to Pods. /// /// /// An optional Kubernetes label selector expression used to filter the Pods. /// /// /// An optional Kubernetes field selector expression used to filter the Pods. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string fieldSelector = null, string kubeNamespace = null); /// /// Get the combined logs for the Pod with the specified name. /// /// /// The name of the target Pod. /// /// /// The name of the container. /// /// Not required if the pod only has a single container. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// Limit the number of bytes returned (optional). /// /// /// The number of lines from the end of the log to show (optional). /// /// If not specified, logs are since from the creation of the container. /// /// /// Return previous terminated container logs (defaults to false)? /// /// /// An optional that can be used to cancel the request. /// /// /// A string containing the logs. /// Task Logs(string name, string containerName = null, string kubeNamespace = null, int? limitBytes = null, int? tailLines = null, bool? previous = null, CancellationToken cancellationToken = default); /// /// Stream the combined logs for the Pod with the specified name. /// /// /// The name of the target Pod. /// /// /// The name of the container. /// /// Not required if the pod only has a single container. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// Limit the number of bytes returned (optional). /// /// /// The number of lines from the end of the log to show (optional). /// /// If not specified, logs are since from the creation of the container. /// /// /// An sequence of lines from the log. /// IObservable StreamLogs(string name, string containerName = null, string kubeNamespace = null, int? limitBytes = null, int? tailLines = null); /// /// Request creation of a . /// /// /// A representing the Pod to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Pod. /// Task Create(PodV1 newPod, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Pod. /// /// /// The name of the Pod to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the pod's most recent state before it was deleted, if is ; otherwise, a indicating the operation result. /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/ReplicaSetClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes ReplicaSets (v1) API. /// public class ReplicaSetClientV1 : KubeResourceClient, IReplicaSetClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public ReplicaSetClientV1(IKubeApiClient client) : base(client) { } /// /// Get the ReplicaSet with the specified name. /// /// /// The name of the ReplicaSet to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ReplicaSet, or null if no ReplicaSet was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all ReplicaSets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicaSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the ReplicaSets. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to ReplicaSets. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicaSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/ReplicaSets with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the ReplicaSet to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ReplicaSet. /// public async Task Create(ReplicaSetV1 newReplicaSet, CancellationToken cancellationToken = default) { if (newReplicaSet == null) throw new ArgumentNullException(nameof(newReplicaSet)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newReplicaSet?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newReplicaSet, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/ReplicaSet in namespace '{newReplicaSet?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}'" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target ReplicaSet. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ReplicaSet. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified ReplicaSet. /// /// /// The name of the ReplicaSet to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the replica set's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the ReplicaSet (v1) API. /// static class Requests { /// /// A collection-level ReplicaSet (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("/apis/apps/v1/namespaces/{Namespace}/replicasets?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name ReplicaSet (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("/apis/apps/v1/namespaces/{Namespace}/replicasets/{Name}"); } } /// /// A client for the Kubernetes ReplicaSets (v1beta1) API. /// public interface IReplicaSetClientV1 : IKubeResourceClient { /// /// Get the ReplicaSet with the specified name. /// /// /// The name of the ReplicaSet to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ReplicaSet, or null if no ReplicaSet was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all ReplicaSets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicaSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the ReplicaSets. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to ReplicaSets. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicaSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the ReplicaSet to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ReplicaSet. /// Task Create(ReplicaSetV1 newReplicaSet, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target ReplicaSet. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ReplicaSet. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified ReplicaSet. /// /// /// The name of the ReplicaSet to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the replica set's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/ReplicationControllerClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes ReplicationControllers (v1) API. /// public class ReplicationControllerClientV1 : KubeResourceClient, IReplicationControllerClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public ReplicationControllerClientV1(IKubeApiClient client) : base(client) { } /// /// Get the ReplicationController with the specified name. /// /// /// The name of the ReplicationController to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ReplicationController, or null if no ReplicationController was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all ReplicationControllers in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicationControllers. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the ReplicationControllers. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to ReplicationControllers. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicationControllers. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/ReplicationControllers with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the ReplicationController to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ReplicationController. /// public async Task Create(ReplicationControllerV1 newController, CancellationToken cancellationToken = default) { if (newController == null) throw new ArgumentNullException(nameof(newController)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newController?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newController, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/ReplicationController resource in namespace '{newController?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}'" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target ReplicationController. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ReplicationController. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified ReplicationController. /// /// /// The name of the ReplicationController to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the replication controller's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the ReplicationController (v1) API. /// static class Requests { /// /// A collection-level ReplicationController (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/replicationcontrollers?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name ReplicationController (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/replicationcontrollers/{Name}"); } } /// /// A client for the Kubernetes ReplicationControllers (v1) API. /// public interface IReplicationControllerClientV1 : IKubeResourceClient { /// /// Get the ReplicationController with the specified name. /// /// /// The name of the ReplicationController to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ReplicationController, or null if no ReplicationController was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all ReplicationControllers in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicationControllers. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the ReplicationControllers. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to ReplicationControllers. /// /// /// An optional Kubernetes label selector expression used to filter the ReplicationControllers. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the ReplicationController to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ReplicationController. /// Task Create(ReplicationControllerV1 newReplicationController, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target ReplicationController. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ReplicationController. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified ReplicationController. /// /// /// The name of the ReplicationController to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the replication controller's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/RoleBindingClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Nodes (v1) API. /// public class RoleBindingClientV1 : KubeResourceClient, IRoleBindingClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public RoleBindingClientV1(IKubeApiClient client) : base(client) { } /// /// Get the RoleBinding with the specified name. /// /// /// The name of the RoleBinding to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the RoleBinding, or null if no RoleBinding was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all RoleBindings in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the RoleBindings. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the role bindings. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific RoleBinding. /// /// /// The name of the RoleBinding to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/RoleBinding '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the RoleBinding to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created RoleBinding. /// public async Task Create(RoleBindingV1 newRoleBinding, CancellationToken cancellationToken = default) { if (newRoleBinding == null) throw new ArgumentNullException(nameof(newRoleBinding)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newRoleBinding?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newRoleBinding, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/RoleBinding resource in namespace '{newRoleBinding?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}'" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target RoleBinding. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated RoleBinding. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified RoleBinding. /// /// /// The name of the RoleBinding to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( $"delete v1/RoleBinding resource '{name}' in namespace '{kubeNamespace ?? KubeClient.DefaultNamespace}'", HttpStatusCode.OK, HttpStatusCode.NotFound ); } /// /// Request templates for the RoleBinding (v1) API. /// static class Requests { /// /// A collection-level RoleBinding (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/rbac.authorization.k8s.io/v1/namespaces/{Namespace}/rolebindings?labelSelector={LabelSelector?}"); /// /// A get-by-name RoleBinding (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/rbac.authorization.k8s.io/v1/namespaces/{Namespace}/rolebindings/{Name}"); /// /// A watch-by-name RoleBinding (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("apis/rbac.authorization.k8s.io/v1/namespaces/{Namespace}/rolebindings/{Name}"); } } /// /// A client for the Kubernetes Nodes (v1) API. /// public interface IRoleBindingClientV1 : IKubeResourceClient { /// /// Get the RoleBinding with the specified name. /// /// /// The name of the RoleBinding to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the RoleBinding, or null if no RoleBinding was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all RoleBindings in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the RoleBindings. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the RoleBindings. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific RoleBinding. /// /// /// The name of the RoleBinding to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the RoleBinding to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created RoleBinding. /// Task Create(RoleBindingV1 newRoleBinding, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target RoleBinding. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated RoleBinding. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified RoleBinding. /// /// /// The name of the RoleBinding to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/RoleClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Nodes (v1) API. /// public class RoleClientV1 : KubeResourceClient, IRoleClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public RoleClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Role with the specified name. /// /// /// The name of the Role to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Role, or null if no Role was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Roles in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Roles. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the roles. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific Role. /// /// /// The name of the Role to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/Role '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the Role to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Role. /// public async Task Create(RoleV1 newRole, CancellationToken cancellationToken = default) { if (newRole == null) throw new ArgumentNullException(nameof(newRole)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newRole?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newRole, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/Role resource in namespace '{newRole?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}'" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target Role. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Role. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified Role. /// /// /// The name of the Role to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( $"delete v1/Role resource '{name}' in namespace '{kubeNamespace ?? KubeClient.DefaultNamespace}'", HttpStatusCode.OK, HttpStatusCode.NotFound ); } /// /// Request templates for the Role (v1) API. /// static class Requests { /// /// A collection-level Role (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/rbac.authorization.k8s.io/v1/namespaces/{Namespace}/roles?labelSelector={LabelSelector?}"); /// /// A get-by-name Role (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/rbac.authorization.k8s.io/v1/namespaces/{Namespace}/roles/{Name}"); /// /// A watch-by-name Role (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("apis/rbac.authorization.k8s.io/v1/namespaces/{Namespace}/roles/{Name}"); } } /// /// A client for the Kubernetes Nodes (v1) API. /// public interface IRoleClientV1 : IKubeResourceClient { /// /// Get the Role with the specified name. /// /// /// The name of the Role to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Role, or null if no Role was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Roles in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Roles. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Roles. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific Role. /// /// /// The name of the Role to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the Role to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Role. /// Task Create(RoleV1 newRole, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target Role. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Role. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Role. /// /// /// The name of the Role to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/SecretClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Secrets (v1) API. /// public class SecretClientV1 : KubeResourceClient, ISecretClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public SecretClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Secret with the specified name. /// /// /// The name of the Secret to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Secret, or null if no Secret was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Secrets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Secrets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the secrets. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific Secret. /// /// /// The name of the Secret to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/Secret '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Watch for events relating to Secrets. /// /// /// An optional Kubernetes label selector expression used to filter the Secrets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/Secrets with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the Secret to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Secret. /// public async Task Create(SecretV1 newSecret, CancellationToken cancellationToken = default) { if (newSecret == null) throw new ArgumentNullException(nameof(newSecret)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newSecret?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newSecret, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/Secret resource in namespace '{newSecret?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}'" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target Secret. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Secret. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified Secret. /// /// /// The name of the Secret to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( $"delete v1/Secret resource '{name}' in namespace '{kubeNamespace ?? KubeClient.DefaultNamespace}'", HttpStatusCode.OK, HttpStatusCode.NotFound ); } /// /// Request templates for the Secret (v1) API. /// static class Requests { /// /// A collection-level Secret (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/secrets?labelSelector={LabelSelector?}"); /// /// A get-by-name Secret (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/secrets/{Name}"); /// /// A watch-by-name Secret (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("api/v1/watch/namespaces/{Namespace}/secrets/{Name}"); } } /// /// Represents a client for the Kubernetes Secrets (v1) API. /// public interface ISecretClientV1 : IKubeResourceClient { /// /// Get the Secret with the specified name. /// /// /// The name of the Secret to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Secret, or null if no Secret was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Secrets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Secrets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Secrets. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific Secret. /// /// /// The name of the Secret to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Watch for events relating to Secrets. /// /// /// An optional Kubernetes label selector expression used to filter the Secrets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the Secret to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Secret. /// Task Create(SecretV1 newSecret, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target Secret. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Secret. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Secret. /// /// /// The name of the Secret to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/ServiceAccountClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Nodes (v1) API. /// public class ServiceAccountClientV1 : KubeResourceClient, IServiceAccountClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public ServiceAccountClientV1(IKubeApiClient client) : base(client) { } /// /// Get the ServiceAccount with the specified name. /// /// /// The name of the ServiceAccount to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ServiceAccount, or null if no ServiceAccount was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all ServiceAccounts in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ServiceAccounts. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the service accounts. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific ServiceAccount. /// /// /// The name of the ServiceAccount to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/ServiceAccount '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the ServiceAccount to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ServiceAccount. /// public async Task Create(ServiceAccountV1 newServiceAccount, CancellationToken cancellationToken = default) { if (newServiceAccount == null) throw new ArgumentNullException(nameof(newServiceAccount)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newServiceAccount?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newServiceAccount, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/ServiceAccount resource in namespace '{newServiceAccount?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}'" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target ServiceAccount. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ServiceAccount. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified ServiceAccount. /// /// /// The name of the ServiceAccount to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( $"delete v1/ServiceAccount resource '{name}' in namespace '{kubeNamespace ?? KubeClient.DefaultNamespace}'", HttpStatusCode.OK, HttpStatusCode.NotFound ); } /// /// Request templates for the ServiceAccount (v1) API. /// static class Requests { /// /// A collection-level ServiceAccount (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/serviceaccounts?labelSelector={LabelSelector?}"); /// /// A get-by-name ServiceAccount (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/serviceaccounts/{Name}"); /// /// A watch-by-name ServiceAccount (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/serviceaccounts/{Name}"); } } /// /// A client for the Kubernetes Nodes (v1) API. /// public interface IServiceAccountClientV1 : IKubeResourceClient { /// /// Get the ServiceAccount with the specified name. /// /// /// The name of the ServiceAccount to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the ServiceAccount, or null if no ServiceAccount was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all ServiceAccounts in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the ServiceAccounts. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the ServiceAccounts. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific ServiceAccount. /// /// /// The name of the ServiceAccount to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the ServiceAccount to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created ServiceAccount. /// Task Create(ServiceAccountV1 newServiceAccount, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target ServiceAccount. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated ServiceAccount. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified ServiceAccount. /// /// /// The name of the ServiceAccount to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/ServiceClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Net; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes Services (v1) API. /// public class ServiceClientV1 : KubeResourceClient, IServiceClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public ServiceClientV1(IKubeApiClient client) : base(client) { } /// /// Get the Service with the specified name. /// /// /// The name of the Service to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Service, or null if no Service was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all Services in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Services. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Services. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific Service. /// /// /// The name of the Service to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> Watch(string name, string kubeNamespace = null) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), operationDescription: $"watch v1/Service '{name}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Watch for events relating to Services. /// /// /// An optional Kubernetes label selector expression used to filter the Services. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/Services with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the Service to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Service. /// public async Task Create(ServiceV1 newService, CancellationToken cancellationToken = default) { if (newService == null) throw new ArgumentNullException(nameof(newService)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newService?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newService, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( operationDescription: $"create v1/Service resource in namespace '{newService?.Metadata?.Namespace ?? KubeClient.DefaultNamespace}'" ); } /// /// Request update (PATCH) of a . /// /// /// The name of the target Service. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Service. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified Service. /// /// /// The name of the Service to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// public async Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await Http .DeleteAsync( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async( $"delete v1/Service resource '{name}' in namespace '{kubeNamespace ?? KubeClient.DefaultNamespace}'", HttpStatusCode.OK, HttpStatusCode.NotFound ); } /// /// Request templates for the Service (v1) API. /// static class Requests { /// /// A collection-level Service (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("api/v1/namespaces/{Namespace}/services?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name Service (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("api/v1/namespaces/{Namespace}/services/{Name}"); /// /// A watch-by-name Service (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("api/v1/watch/namespaces/{Namespace}/services/{Name}"); } } /// /// Represents a client for the Kubernetes Services (v1) API. /// public interface IServiceClientV1 : IKubeResourceClient { /// /// Get the Service with the specified name. /// /// /// The name of the Service to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the Service, or null if no Service was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all Services in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the Services. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the Services. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific Service. /// /// /// The name of the Service to watch. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> Watch(string name, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the Service to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created Service. /// Task Create(ServiceV1 newService, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target Service. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated Service. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified Service. /// /// /// The name of the Service to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// An indicating the result of the request. /// Task Delete(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/ResourceClients/StatefulSetClientV1.cs ================================================ using Microsoft.AspNetCore.JsonPatch; using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes StatefulSet (v1) API. /// public class StatefulSetClientV1 : KubeResourceClient, IStatefulSetClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public StatefulSetClientV1(IKubeApiClient client) : base(client) { } /// /// Get the StatefulSet with the specified name. /// /// /// The name of the StatefulSet to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the StatefulSet, or null if no StatefulSet was found with the specified name and namespace. /// public async Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken: cancellationToken ); } /// /// Get all StatefulSets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the StatefulSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the StatefulSets. /// public async Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to StatefulSets. /// /// /// An optional Kubernetes label selector expression used to filter the StatefulSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// public IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null) { return ObserveEvents( Requests.Collection.WithTemplateParameters(new { Namespace = kubeNamespace ?? KubeClient.DefaultNamespace, LabelSelector = labelSelector, Watch = true }), operationDescription: $"watch all v1/StatefulSets with label selector '{labelSelector ?? ""}' in namespace {kubeNamespace ?? KubeClient.DefaultNamespace}" ); } /// /// Request creation of a . /// /// /// A representing the StatefulSet to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created StatefulSet. /// public async Task Create(StatefulSetV1 newStatefulSet, CancellationToken cancellationToken = default) { if (newStatefulSet == null) throw new ArgumentNullException(nameof(newStatefulSet)); return await Http .PostAsJsonAsync( Requests.Collection.WithTemplateParameters(new { Namespace = newStatefulSet?.Metadata?.Namespace ?? KubeClient.DefaultNamespace }), postBody: newStatefulSet, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async("create v1/StatefulSet resource"); } /// /// Request update (PATCH) of a . /// /// /// The name of the target StatefulSet. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated StatefulSet. /// public async Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (patchAction == null) throw new ArgumentNullException(nameof(patchAction)); return await PatchResource(patchAction, Requests.ByName.WithTemplateParameters(new { Name = name, Namespace = kubeNamespace ?? KubeClient.DefaultNamespace }), cancellationToken ); } /// /// Request deletion of the specified StatefulSet. /// /// /// The name of the StatefulSet to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the StatefulSet's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteResource(Requests.ByName, name, kubeNamespace, propagationPolicy, cancellationToken); } /// /// Request templates for the StatefulSets (v1) API. /// static class Requests { /// /// A collection-level StatefulSet (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/apps/v1/namespaces/{Namespace}/statefulsets?labelSelector={LabelSelector?}&watch={Watch?}"); /// /// A get-by-name StatefulSet (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/apps/v1/namespaces/{Namespace}/statefulsets/{Name}"); } } /// /// Represents a client for the Kubernetes StatefulSets (v1) API. /// public interface IStatefulSetClientV1 : IKubeResourceClient { /// /// Get the StatefulSet with the specified name. /// /// /// The name of the StatefulSet to retrieve. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the StatefulSet, or null if no StatefulSet was found with the specified name and namespace. /// Task Get(string name, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Get all StatefulSets in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the StatefulSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the StatefulSets. /// Task List(string labelSelector = null, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to StatefulSets. /// /// /// An optional Kubernetes label selector expression used to filter the StatefulSets. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An representing the event stream. /// IObservable> WatchAll(string labelSelector = null, string kubeNamespace = null); /// /// Request creation of a . /// /// /// A representing the StatefulSet to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created StatefulSet. /// Task Create(StatefulSetV1 newStatefulSet, CancellationToken cancellationToken = default); /// /// Request update (PATCH) of a . /// /// /// The name of the target StatefulSet. /// /// /// A delegate that customises the patch operation. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the updated StatefulSet. /// Task Update(string name, Action> patchAction, string kubeNamespace = null, CancellationToken cancellationToken = default); /// /// Request deletion of the specified StatefulSet. /// /// /// The name of the StatefulSet to delete. /// /// /// The target Kubernetes namespace (defaults to ). /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the StatefulSet's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, string kubeNamespace = null, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient/Utilities/HttpRequestHelper.cs ================================================ using System; using System.Net.Http; namespace KubeClient.Utilities { using Http; /// /// Helper methods for working with and related types. /// public static class HttpRequestHelper { /// /// Expand an 's request URI, populating its URI template if necessary. /// /// /// The target . /// /// /// The base URI to use (optional, unless is null or not an absolute URI). /// /// /// The expanded request URI (always an absolute URI). /// public static Uri ExpandRequestUri(this HttpRequest request, Uri baseUri = null) { using (HttpRequestMessage requestMessage = request.BuildRequestMessage(HttpMethod.Get, body: null, baseUri)) { return requestMessage.RequestUri; } } /// /// Expand an 's request URI, populating its URI template if necessary. /// /// /// The type of object used as a context when evaluating request template parameters. /// /// /// The target . /// /// /// The used as a context when evaluating request template parameters. /// /// /// The base URI to use (optional, unless is null or not an absolute URI). /// /// /// The expanded request URI (always an absolute URI). /// public static Uri ExpandRequestUri(this HttpRequest request, TContext context, Uri baseUri = null) { using (HttpRequestMessage requestMessage = request.BuildRequestMessage(HttpMethod.Get, context, body: null, baseUri)) { return requestMessage.RequestUri; } } } } ================================================ FILE: src/KubeClient/Utilities/ProcessHelper.cs ================================================ using System; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Utilities { /// /// Helper methods for working with a . /// static class ProcessHelper { /// /// Asynchronously wait for the process to exit. /// /// /// The target . /// /// /// The process exit code. /// public static Task WaitForExitAsync(this Process process) { return process.WaitForExitAsync(CancellationToken.None, killIfCancelled: false); } /// /// Asynchronously wait for the process to exit. /// /// /// The target . /// /// /// A that can be used to cancel the wait. /// /// /// The process exit code. /// public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken) { return process.WaitForExitAsync(cancellationToken, killIfCancelled: false); } /// /// Asynchronously wait for the process to exit. /// /// /// The target . /// /// /// A that can be used to cancel the wait. /// /// /// Kill the process if the is cancelled? /// /// /// The process exit code. /// public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken, bool killIfCancelled) { if (process == null) throw new ArgumentNullException(nameof(process)); // Short-circuit: already exited. if (process.HasExited) return Task.FromResult(process.ExitCode); TaskCompletionSource completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); cancellationToken.Register(() => { try { if (killIfCancelled && !process.HasExited) process.Kill(); } finally { completion.TrySetCanceled(cancellationToken); } }); process.Exited += (sender, eventArgs) => { completion.TrySetResult(process.ExitCode); }; process.EnableRaisingEvents = true; // Short-circuit: exited while we were hooking event (i.e. race condition). if (process.HasExited) completion.TrySetResult(process.ExitCode); return completion.Task; } } } ================================================ FILE: src/KubeClient/Utilities/UriHelper.cs ================================================ using System; namespace KubeClient.Utilities { /// /// Helper methods for working with s. /// public static class UriHelper { /// /// A dummy URI to be used as the base URI when dealing with relative URIs. /// static readonly Uri DummyBaseUri = new Uri("https://dummy-host"); /// /// Get the path (and, if present, the query) of a URI. /// /// /// The target . /// /// /// The URI's path and query. /// /// /// Unlike , also handles relative URIs. /// public static string SafeGetPathAndQuery(this Uri uri) { if (uri == null) throw new ArgumentNullException(nameof(uri)); return uri.EnsureAbsolute().PathAndQuery; } /// /// Ensure that the URI is an absolute URI. /// /// /// The target URI. /// /// /// The target URI, if is true; otherwise, an absolute URI using as the base URI. /// static Uri EnsureAbsolute(this Uri uri) { if (uri == null) throw new ArgumentNullException(nameof(uri)); if (uri.IsAbsoluteUri) return uri; // Slightly ugly, but System.Uri doesn't attempt to parse relative URIs so we have to convert it to an absolute URI. Uri absoluteUri = new Uri(DummyBaseUri, relativeUri: uri); return absoluteUri; } } } ================================================ FILE: src/KubeClient.Core/AssemblyVisiblity.cs ================================================ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("KubeClient.Tests")] ================================================ FILE: src/KubeClient.Core/IKubeApiClient.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Net.Http; namespace KubeClient { using ResourceClients; /// /// Represents a client for the Kubernetes API. /// public interface IKubeApiClient : IDisposable { /// /// The base address of the Kubernetes API end-point targeted by the client. /// Uri ApiEndPoint { get; } /// /// The default Kubernetes namespace. /// string DefaultNamespace { get; set; } /// /// The underlying HTTP client. /// HttpClient Http { get; } /// /// The used to create loggers for client components. /// ILoggerFactory LoggerFactory { get; } /// /// Get a copy of the used to configure the client. /// /// /// The . /// KubeClientOptions GetClientOptions(); /// /// Get or create a Kubernetes resource client of the specified type. /// /// /// The type of Kubernetes resource client to get or create. /// /// /// A delegate that creates the resource client. /// /// /// The resource client. /// TClient ResourceClient(Func clientFactory) where TClient : IKubeResourceClient; } } ================================================ FILE: src/KubeClient.Core/K8sAnnotations.cs ================================================ namespace KubeClient { /// /// Well-known annotation keys used by Kubernetes. /// public static class K8sAnnotations { /// /// Well-known (deployment-specific) annotation keys used by Kubernetes. /// public static class Deployment { /// /// The annotation key representing a specific revision of a Deployment. /// public const string Revision = "deployment.kubernetes.io/revision"; } } } ================================================ FILE: src/KubeClient.Core/KubeClient.Core.csproj ================================================  net7.0;net8.0;net9.0;net10.0;netstandard2.1 KubeClient Common functionality for KubeClient (dotnet-kube-client) ================================================ FILE: src/KubeClient.Core/KubeClientConstants.cs ================================================ namespace KubeClient { /// /// Constants for the Kubernetes API client. /// public static class KubeClientConstants { /// /// Environment Variable set in a Kubernetes Pod containing the host name of the API Service /// public const string KubernetesServiceHost = "KUBERNETES_SERVICE_HOST"; /// /// Environment Variable set in a Kubernetes Pod containing the port of the API Service /// public const string KubernetesServicePort = "KUBERNETES_SERVICE_PORT"; /// /// Default path of mounted volume containing Kubernetes service account token, CA certificate, and default namespace. /// public const string DefaultServiceAccountPath = "/var/run/secrets/kubernetes.io/serviceaccount"; } } ================================================ FILE: src/KubeClient.Core/KubeClientException.cs ================================================ using System; namespace KubeClient { /// /// Exception raised when an error is encountered by the Kubernetes API client. /// public class KubeClientException : Exception { /// /// The default exception message used when no message was available. /// public static readonly string DefaultMessage = "An unexpected error has occurred (error description is not available)."; /// /// Create a new . /// /// /// The exception message. /// public KubeClientException(string message) : base(message) { } /// /// Create a new , as caused by a previous exception. /// /// /// The exception message. /// /// /// The exception that caused the to be raised. /// public KubeClientException(string message, Exception innerException) : base(message, innerException) { } } } ================================================ FILE: src/KubeClient.Core/KubeClientOptions.cs ================================================ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using System; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Security.Cryptography.X509Certificates; namespace KubeClient { /// /// Options for the Kubernetes API client. /// public class KubeClientOptions { /// /// The default (no-op) logger factory. /// public static readonly ILoggerFactory DefaultLoggerFactory = NullLoggerFactory.Instance; /// /// The used to create loggers for client components (defaults to a factory that creates no-op loggers). /// ILoggerFactory _loggerFactory = DefaultLoggerFactory; /// /// Create new . /// public KubeClientOptions() { } /// /// Create new . /// /// /// The base address of the Kubernetes API end-point. /// public KubeClientOptions(string apiEndPoint) { if (String.IsNullOrWhiteSpace(apiEndPoint)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'apiEndPoint'.", nameof(apiEndPoint)); ApiEndPoint = new Uri(apiEndPoint); } /// /// The default Kubernetes namespace to use when no specific namespace is specified. /// public string KubeNamespace { get; set; } = "default"; /// /// The base address of the Kubernetes API end-point. /// public Uri ApiEndPoint { get; set; } /// /// The access token used to authenticate to the Kubernetes API. /// public string AccessToken { get; set; } /// /// The username used to authenticate to the Kubernetes API. /// public string Username { get; set; } /// /// The password used to authenticate to the Kubernetes API. /// public string Password { get; set; } /// /// The command used to generate an access token for authenticating to the Kubernetes API. /// public string AccessTokenCommand { get; set; } /// /// The command arguments used to generate an access token for authenticating to the Kubernetes API. /// public string AccessTokenCommandArguments { get; set; } /// /// The Go-style selector used to retrieve the access token from the command output. /// public string AccessTokenSelector { get; set; } /// /// The Go-style selector used to retrieve the access token's expiry date/time from the command output. /// public string AccessTokenExpirySelector { get; set; } /// /// The initial access token used to authenticate to the Kubernetes API. /// public string InitialAccessToken { get; set; } /// /// The initial token expiry used to authenticate to the Kubernetes API. /// public DateTime? InitialTokenExpiryUtc { get; set; } /// /// The strategy used for authenticating to the Kubernetes API. /// public KubeAuthStrategy AuthStrategy { get; set; } /// /// The client certificate used to authenticate to the Kubernetes API. /// public X509Certificate2 ClientCertificate { get; set; } /// /// The expected CA certificate used by the Kubernetes API. /// public X509Certificate2 CertificationAuthorityCertificate { get; set; } /// /// Skip verification of the server's SSL certificate? /// public bool AllowInsecure { get; set; } /// /// Log request / response headers? /// public bool LogHeaders { get; set; } /// /// Load request / response payloads (bodies)? /// public bool LogPayloads { get; set; } /// /// Additional assemblies (if any) that contain model types used by the client. /// public List ModelTypeAssemblies { get; } = new List(); /// /// An optional to use as a dependency-injection container. /// public IServiceProvider ServiceProvider { get; set; } /// /// The used to create loggers for client components (defaults to a no-op logger factory). /// /// /// This property is never null; attempting to set its value to null will instead result in the default (no-op) logger factory () being used. /// public ILoggerFactory LoggerFactory { get => _loggerFactory; set => _loggerFactory = value ?? DefaultLoggerFactory; } /// /// Environment variables passed to external commands /// public Dictionary EnvironmentVariables { get; set; } /// /// Create a copy of the . /// /// /// The new . /// public KubeClientOptions Clone() { var clonedOptions = new KubeClientOptions(); CopyTo(clonedOptions); return clonedOptions; } /// /// Copy all properties from the to other . /// /// /// The target . /// public void CopyTo(KubeClientOptions toOptions) { if (toOptions == null) throw new ArgumentNullException(nameof(toOptions)); toOptions.AccessToken = AccessToken; toOptions.AccessTokenCommand = AccessTokenCommand; toOptions.AccessTokenCommandArguments = AccessTokenCommandArguments; toOptions.AccessTokenExpirySelector = AccessTokenExpirySelector; toOptions.AccessTokenSelector = AccessTokenSelector; toOptions.AllowInsecure = AllowInsecure; toOptions.ApiEndPoint = ApiEndPoint; toOptions.AuthStrategy = AuthStrategy; toOptions.CertificationAuthorityCertificate = CertificationAuthorityCertificate; toOptions.ClientCertificate = ClientCertificate; toOptions.InitialAccessToken = InitialAccessToken; toOptions.InitialTokenExpiryUtc = InitialTokenExpiryUtc; toOptions.KubeNamespace = KubeNamespace; toOptions.ServiceProvider = ServiceProvider; toOptions.LoggerFactory = LoggerFactory; toOptions.LogHeaders = LogHeaders; toOptions.LogPayloads = LogPayloads; toOptions.EnvironmentVariables = EnvironmentVariables; toOptions.ModelTypeAssemblies.AddRange(ModelTypeAssemblies); } /// /// Ensure that the are valid. /// /// /// The (enables inline use). /// public KubeClientOptions EnsureValid() { if (ApiEndPoint == null || !ApiEndPoint.IsAbsoluteUri) throw new KubeClientException("Invalid KubeClientOptions: must specify a valid API end-point."); if (ClientCertificate != null && !ClientCertificate.HasPrivateKey) throw new KubeClientException("Invalid KubeClientOptions: the private key for the supplied client certificate is not available."); if (String.IsNullOrWhiteSpace(KubeNamespace)) throw new KubeClientException("Invalid KubeClientOptions: must specify a valid default namespace."); return this; } /// /// Create new using pod-level configuration. /// /// /// The location of the volume containing service account token, CA certificate, and default namespace. /// /// /// The configured . /// /// /// Only works from within a container running in a Kubernetes Pod. /// /// public static KubeClientOptions FromPodServiceAccount(string serviceAccountPath = KubeClientConstants.DefaultServiceAccountPath) { string kubeServiceHost = Environment.GetEnvironmentVariable(KubeClientConstants.KubernetesServiceHost); string kubeServicePort = Environment.GetEnvironmentVariable(KubeClientConstants.KubernetesServicePort); if (String.IsNullOrWhiteSpace(kubeServiceHost) || String.IsNullOrWhiteSpace(kubeServicePort)) throw new InvalidOperationException($"KubeApiClient.CreateFromPodServiceAccount can only be called when running in a Kubernetes Pod ({KubeClientConstants.KubernetesServiceHost} and/or {KubeClientConstants.KubernetesServicePort} environment variable is not defined)."); string defaultNamespace = File.ReadAllText(Path.Combine(serviceAccountPath, "namespace")).Trim(); string apiEndPoint = $"https://{kubeServiceHost}:{kubeServicePort}/"; string accessToken = File.ReadAllText(Path.Combine(serviceAccountPath, "token")); X509Certificate2 kubeCACertificate; #if !NET9_0_OR_GREATER byte[] certificateData = File.ReadAllBytes( Path.Combine(serviceAccountPath, "ca.crt") ); kubeCACertificate = new X509Certificate2(certificateData); #else // !NET9_0_OR_GREATER kubeCACertificate = X509CertificateLoader.LoadCertificateFromFile( Path.Combine(serviceAccountPath, "ca.crt") ); #endif // !NET9_0_OR_GREATER return new KubeClientOptions { ApiEndPoint = new Uri(apiEndPoint), AuthStrategy = KubeAuthStrategy.BearerToken, AccessToken = accessToken, CertificationAuthorityCertificate = kubeCACertificate, KubeNamespace = defaultNamespace }; } } /// /// Represents a strategy for authenticating to the Kubernetes API. /// public enum KubeAuthStrategy { /// /// No authentication (e.g. via "kubectl proxy"). /// None, /// /// Client certificate (i.e. mutual SSL) authentication. /// ClientCertificate, /// /// Username/Password authentication. /// Basic, /// /// A pre-defined (static) bearer token. /// BearerToken, /// /// A bearer token obtained by an authentication provider (i.e. running an external command). /// BearerTokenProvider, /// /// Client credentials obtained by a client-go credential plugin (i.e. running an external command). /// CredentialPlugin } } ================================================ FILE: src/KubeClient.Core/ResourceClients/IKubeResourceClient.cs ================================================ namespace KubeClient.ResourceClients { /// /// A client for a specific Kubernetes resource API. /// public interface IKubeResourceClient { /// /// The Kubernetes API client. /// IKubeApiClient KubeClient { get; } } } ================================================ FILE: src/KubeClient.Extensions.Configuration/ConfigMapConfigurationProvider.cs ================================================ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; namespace KubeClient.Extensions.Configuration { using Models; using Settings; /// /// Provider for configuration that comes from a Kubernetes ConfigMap. /// sealed class ConfigMapConfigurationProvider : ConfigurationProvider, IDisposable { /// /// The used to communicate with the Kubernetes API. /// readonly IKubeApiClient _client; /// /// The name of the target ConfigMap. /// readonly string _configMapName; /// /// The Kubernetes namespace that contains the target ConfigMap. /// readonly string _kubeNamespace; /// /// The name of the target configuration section (if any). /// readonly string _sectionName; /// /// Watch the ConfigMap for changes? /// readonly bool _watch; /// /// Throw an exception if the ConfigMap is not found? /// readonly bool _throwOnNotFound; /// /// An representing the subscription to events for the watched ConfigMap. /// IDisposable _watchSubscription; /// /// Create a new . /// /// /// The used to configure the provider. /// public ConfigMapConfigurationProvider(ConfigMapConfigurationSettings providerSettings) { if ( providerSettings == null ) throw new ArgumentNullException(nameof(providerSettings)); _client = providerSettings.Client; _configMapName = providerSettings.ConfigMapName; _kubeNamespace = providerSettings.KubeNamespace; _sectionName = providerSettings.SectionName; _watch = providerSettings.Watch; _throwOnNotFound = providerSettings.ThrowOnNotFound; Log = _client.LoggerFactory.CreateLogger(); } /// /// Dispose of resources being used by the provider. /// public void Dispose() { if (_watchSubscription != null) { _watchSubscription.Dispose(); _watchSubscription = null; } _client.Dispose(); } /// /// The configuration provider's logger. /// ILogger Log { get; } /// /// Load configuration entries from the ConfigMap. /// public override void Load() { Log.LogTrace("Attempting to load ConfigMap {ConfigMapName} in namespace {KubeNamespace}...", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); ConfigMapV1 configMap = _client.ConfigMapsV1().Get(_configMapName, _kubeNamespace).GetAwaiter().GetResult(); Load(configMap); if (_watch && _watchSubscription == null) { Log.LogTrace("Creating watch-event stream for ConfigMap {ConfigMapName} in namespace {KubeNamespace}...", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); _watchSubscription = _client.ConfigMapsV1() .Watch(_configMapName, _kubeNamespace) .Subscribe(OnConfigMapChanged); Log.LogTrace("Watch-event stream created for ConfigMap {ConfigMapName} in namespace {KubeNamespace}.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); } } /// /// Load data from the specified ConfigMap. /// /// /// A representing the ConfigMap's current state, or null if the ConfigMap was not found. /// /// /// Is the ConfigMap is being reloaded? If false, then this is the initial load (and may throw an exception). /// void Load(ConfigMapV1 configMap, bool isReload = false) { if (configMap != null) { Log.LogTrace("Found ConfigMap {ConfigMapName} in namespace {KubeNamespace} (isReload: {isReload}).", _configMapName, _kubeNamespace ?? _client.DefaultNamespace, isReload); string sectionNamePrefix = !String.IsNullOrWhiteSpace(_sectionName) ? _sectionName + ":" : String.Empty; Data = configMap.Data.ToDictionary( entry => sectionNamePrefix + entry.Key.Replace('.', ':'), entry => entry.Value, StringComparer.OrdinalIgnoreCase ); } else { Data = new Dictionary(); Log.LogTrace("ConfigMap {ConfigMapName} was not found in namespace {KubeNamespace} (isReload: {isReload}).", _configMapName, _kubeNamespace ?? _client.DefaultNamespace, isReload); if (!isReload && _throwOnNotFound) throw new KubeClientException($"ConfigMap {_configMapName} was not found in namespace {_kubeNamespace}."); } } /// /// Called when the target ConfigMap is created, modified, or deleted. /// /// /// The change-notification event data. /// private void OnConfigMapChanged(IResourceEventV1 configMapEvent) { if (configMapEvent == null) throw new ArgumentNullException(nameof(configMapEvent)); Log.LogTrace("Observed {EventType} watch-event for ConfigMap {ConfigMapName} in namespace {KubeNamespace}.", configMapEvent.EventType, _configMapName, _kubeNamespace ?? _client.DefaultNamespace); switch (configMapEvent.EventType) { case ResourceEventType.Deleted: { // Clear out configuration if the ConfigMap is has been deleted. Log.LogTrace("ConfigMap {ConfigMapName} in namespace {KubeNamespace} has been deleted.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); Load(null, isReload: true); break; } case ResourceEventType.Error: { // Clear out configuration if the ConfigMap is missing or invalid. Log.LogTrace("ConfigMap {ConfigMapName} in namespace {KubeNamespace} is currently in an invalid state.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); Load(null, isReload: true); break; } default: { Load(configMapEvent.Resource, isReload: true); break; } } Log.LogTrace("Triggering config change-token for ConfigMap {ConfigMapName} in namespace {KubeNamespace}...", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); OnReload(); Log.LogTrace("Config change-token triggered for ConfigMap {ConfigMapName} in namespace {KubeNamespace}.", _configMapName, _kubeNamespace ?? _client.DefaultNamespace); } } } ================================================ FILE: src/KubeClient.Extensions.Configuration/ConfigMapConfigurationSource.cs ================================================ using Microsoft.Extensions.Configuration; using System; namespace KubeClient.Extensions.Configuration { using Settings; /// /// Source for configuration that comes from a Kubernetes ConfigMap. /// sealed class ConfigMapConfigurationSource : IConfigurationSource { /// /// Create a new . /// /// /// The used to create configuration providers. /// public ConfigMapConfigurationSource(ConfigMapConfigurationSettings settings) { if ( settings == null ) throw new ArgumentNullException(nameof(settings)); Settings = settings; } /// /// The used to create configuration providers. /// public ConfigMapConfigurationSettings Settings { get; } /// /// Build a configuration provider with configured options. /// /// /// The configuration builder to retrieve options from. /// /// /// The new . /// public IConfigurationProvider Build(IConfigurationBuilder configurationBuilder) => new ConfigMapConfigurationProvider(Settings); } } ================================================ FILE: src/KubeClient.Extensions.Configuration/KubeClient.Extensions.Configuration.csproj ================================================  net7.0;net8.0;net9.0;net10.0;netstandard2.1 Microsoft.Extensions.Configuration support for KubeClient ================================================ FILE: src/KubeClient.Extensions.Configuration/KubeClientConfigurationExtensions.cs ================================================ using Microsoft.Extensions.Configuration; using System; namespace KubeClient.Extensions.Configuration { using Settings; /// /// extension methods for Kubernetes ConfigMaps and Secrets. /// public static class KubeClientConfigurationExtensions { /// /// Add the specified Kubernetes ConfigMap as a configuration source. /// /// /// The to configure. /// /// /// for the used to communicate with the Kubernetes API. /// /// /// The name of the target ConfigMap. /// /// /// The Kubernetes namespace that contains the target ConfigMap. /// /// /// The name of the target configuration section (if any). /// /// /// Reload the configuration if the ConfigMap changes? /// /// /// Throw an exception if the ConfigMap was not found when the configuration is first loaded? /// /// /// The configured . /// public static IConfigurationBuilder AddKubeConfigMap(this IConfigurationBuilder configurationBuilder, KubeClientOptions clientOptions, string configMapName, string kubeNamespace = null, string sectionName = null, bool reloadOnChange = false, bool throwOnNotFound = false) { if (configurationBuilder == null) throw new ArgumentNullException(nameof(configurationBuilder)); KubeApiClient client = KubeApiClient.Create(clientOptions); return configurationBuilder.AddKubeConfigMap(client, configMapName, kubeNamespace, sectionName, reloadOnChange, throwOnNotFound); } /// /// Add the specified Kubernetes ConfigMap as a configuration source. /// /// /// The to configure. /// /// /// The used to communicate with the Kubernetes API. /// /// /// The name of the target ConfigMap. /// /// /// The Kubernetes namespace that contains the target ConfigMap. /// /// /// The name of the target configuration section (if any). /// /// /// Reload the configuration if the ConfigMap changes? /// /// /// Throw an exception if the ConfigMap was not found when the configuration is first loaded? /// /// /// The configured . /// public static IConfigurationBuilder AddKubeConfigMap(this IConfigurationBuilder configurationBuilder, KubeApiClient client, string configMapName, string kubeNamespace = null, string sectionName = null, bool reloadOnChange = false, bool throwOnNotFound = false) { if (configurationBuilder == null) throw new ArgumentNullException(nameof(configurationBuilder)); return configurationBuilder.Add(new ConfigMapConfigurationSource( new ConfigMapConfigurationSettings(client, configMapName, kubeNamespace, sectionName, reloadOnChange, throwOnNotFound) )); } /// /// Add the specified Kubernetes Secret as a configuration source. /// /// /// The to configure. /// /// /// for the used to communicate with the Kubernetes API. /// /// /// The name of the target Secret. /// /// /// The Kubernetes namespace that contains the target Secret. /// /// /// The name of the target configuration section (if any). /// /// /// Reload the configuration if the Secret changes? /// /// /// The configured . /// public static IConfigurationBuilder AddKubeSecret(this IConfigurationBuilder configurationBuilder, KubeClientOptions clientOptions, string secretName, string kubeNamespace = null, string sectionName = null, bool reloadOnChange = false) { if (configurationBuilder == null) throw new ArgumentNullException(nameof(configurationBuilder)); KubeApiClient client = KubeApiClient.Create(clientOptions); return configurationBuilder.AddKubeSecret(client, secretName, kubeNamespace, sectionName, reloadOnChange); } /// /// Add the specified Kubernetes Secret as a configuration source. /// /// /// The to configure. /// /// /// The used to communicate with the Kubernetes API. /// /// /// The name of the target Secret. /// /// /// The Kubernetes namespace that contains the target Secret. /// /// /// The name of the target configuration section (if any). /// /// /// Reload the configuration if the Secret changes? /// /// /// The configured . /// public static IConfigurationBuilder AddKubeSecret(this IConfigurationBuilder configurationBuilder, KubeApiClient client, string secretName, string kubeNamespace = null, string sectionName = null, bool reloadOnChange = false) { if (configurationBuilder == null) throw new ArgumentNullException(nameof(configurationBuilder)); return configurationBuilder.Add(new SecretConfigurationSource( new SecretConfigurationSettings(client, secretName, kubeNamespace, sectionName, reloadOnChange, throwOnNotFound: false /* not implemented yet */) )); } } } ================================================ FILE: src/KubeClient.Extensions.Configuration/SecretConfigurationProvider.cs ================================================ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace KubeClient.Extensions.Configuration { using Models; using Settings; /// /// Provider for configuration that comes from a Kubernetes Secret. /// sealed class SecretConfigurationProvider : ConfigurationProvider, IDisposable { /// /// The used to communicate with the Kubernetes API. /// readonly IKubeApiClient _client; /// /// The name of the target Secret. /// readonly string _secretName; /// /// The Kubernetes namespace that contains the target Secret. /// readonly string _kubeNamespace; /// /// The name of the target configuration section (if any). /// readonly string _sectionName; /// /// Watch the Secret for changes? /// readonly bool _watch; /// /// An representing the subscription to events for the watched Secret. /// IDisposable _watchSubscription; /// /// Create a new . /// /// /// The used to configure the provider. /// public SecretConfigurationProvider(SecretConfigurationSettings providerSettings) { if ( providerSettings == null ) throw new ArgumentNullException(nameof(providerSettings)); _client = providerSettings.Client; _secretName = providerSettings.SecretName; _kubeNamespace = providerSettings.KubeNamespace; _sectionName = providerSettings.SectionName; _watch = providerSettings.Watch; Log = _client.LoggerFactory.CreateLogger(); } /// /// Dispose of resources being used by the provider. /// public void Dispose() { if (_watchSubscription != null) { _watchSubscription.Dispose(); _watchSubscription = null; } _client.Dispose(); } /// /// The configuration provider's logger. /// ILogger Log { get; } /// /// Load configuration entries from the Secret. /// public override void Load() { Log.LogTrace("Attempting to load Secret {SecretName} in namespace {KubeNamespace}...", _secretName, _kubeNamespace ?? _client.DefaultNamespace); SecretV1 secret = _client.SecretsV1().Get(_secretName, _kubeNamespace).GetAwaiter().GetResult(); Load(secret); if (_watch && _watchSubscription == null) { Log.LogTrace("Creating watch-event stream for Secret {SecretName} in namespace {KubeNamespace}...", _secretName, _kubeNamespace ?? _client.DefaultNamespace); _watchSubscription = _client.SecretsV1() .Watch(_secretName, _kubeNamespace) .Subscribe(OnSecretChanged); Log.LogTrace("Watch-event stream created for Secret {SecretName} in namespace {KubeNamespace}.", _secretName, _kubeNamespace ?? _client.DefaultNamespace); } } /// /// Load data from the specified Secret. /// /// /// A representing the Secret's current state, or null if the Secret was not found. /// void Load(SecretV1 secret) { if (secret != null) { Log.LogTrace("Found Secret {SecretName} in namespace {KubeNamespace}.", _secretName, _kubeNamespace ?? _client.DefaultNamespace); string sectionNamePrefix = !String.IsNullOrWhiteSpace(_sectionName) ? _sectionName + ":" : String.Empty; Data = secret.Data.ToDictionary( entry => sectionNamePrefix + entry.Key.Replace('.', ':'), entry => { try { // Will choke on binary data that doesn't represent valid UTF8 text return Encoding.UTF8.GetString( Convert.FromBase64String(entry.Value) ); } catch (FormatException) { // Not valid Base64; use raw value. return entry.Value; } catch (ArgumentException) { // Not valid UTF8; use raw value. return entry.Value; } }, StringComparer.OrdinalIgnoreCase ); } else { Log.LogTrace("Secret {SecretName} was not found in namespace {KubeNamespace}.", _secretName, _kubeNamespace ?? _client.DefaultNamespace); Data = new Dictionary(); } } /// /// Called when the target Secret is created, modified, or deleted. /// /// /// The change-notification event data. /// void OnSecretChanged(IResourceEventV1 secretEvent) { if (secretEvent == null) throw new ArgumentNullException(nameof(secretEvent)); Log.LogTrace("Observed {EventType} watch-event for Secret {SecretName} in namespace {KubeNamespace}.", secretEvent.EventType, _secretName, _kubeNamespace ?? _client.DefaultNamespace); if (secretEvent.EventType != ResourceEventType.Error) Load(secretEvent.Resource); else Load(null); // Clear out configuration if the Secret is invalid Log.LogTrace("Triggering config change-token for Secret {SecretName} in namespace {KubeNamespace}...", _secretName, _kubeNamespace ?? _client.DefaultNamespace); OnReload(); Log.LogTrace("Config change-token triggered for Secret {SecretName} in namespace {KubeNamespace}.", _secretName, _kubeNamespace ?? _client.DefaultNamespace); } } } ================================================ FILE: src/KubeClient.Extensions.Configuration/SecretConfigurationSource.cs ================================================ using Microsoft.Extensions.Configuration; namespace KubeClient.Extensions.Configuration { using Settings; using System; /// /// Source for configuration that comes from a Kubernetes Secret. /// sealed class SecretConfigurationSource : IConfigurationSource { /// /// Create a new . /// /// /// The used to create configuration providers. /// public SecretConfigurationSource(SecretConfigurationSettings settings) { if ( settings == null ) throw new ArgumentNullException(nameof(settings)); Settings = settings; } /// /// The used to create configuration providers. /// public SecretConfigurationSettings Settings { get; } /// /// Build a configuration provider with configured options. /// /// /// The configuration builder to retrieve options from. /// /// /// The new . /// public IConfigurationProvider Build(IConfigurationBuilder configurationBuilder) => new SecretConfigurationProvider(Settings); } } ================================================ FILE: src/KubeClient.Extensions.Configuration/Settings/ConfigMapConfigurationSettings.cs ================================================ using System; namespace KubeClient.Extensions.Configuration.Settings { /// /// Settings for a single instance of the . /// public class ConfigMapConfigurationSettings { /// /// Create new . /// /// /// The used to communicate with the Kubernetes API. /// /// Note: this client will be disposed by the provider. /// /// /// The name of the target ConfigMap. /// /// /// The Kubernetes namespace that contains the target ConfigMap. /// /// /// The name of the target configuration section (if any). /// /// /// Watch the ConfigMap for changes? /// /// /// Throw an exception if the ConfigMap was not found? /// public ConfigMapConfigurationSettings(IKubeApiClient client, string configMapName, string kubeNamespace, string sectionName, bool watch, bool throwOnNotFound) { if ( client == null ) throw new ArgumentNullException(nameof(client)); if ( String.IsNullOrWhiteSpace(configMapName) ) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'configMapName'.", nameof(configMapName)); Client = client; ConfigMapName = configMapName; KubeNamespace = kubeNamespace; SectionName = sectionName; Watch = watch; ThrowOnNotFound = throwOnNotFound; } /// /// The used to communicate with the Kubernetes API. /// public IKubeApiClient Client { get; } /// /// The name of the target ConfigMap. /// public string ConfigMapName { get; } /// /// The Kubernetes namespace that contains the target ConfigMap. /// public string KubeNamespace { get; } /// /// The name of the target configuration section (if any). /// public string SectionName { get; } /// /// Watch the ConfigMap for changes? /// public bool Watch { get; } /// /// Throw an exception if the ConfigMap was not found? /// public bool ThrowOnNotFound { get; } } } ================================================ FILE: src/KubeClient.Extensions.Configuration/Settings/SecretConfigurationSettings.cs ================================================ using System; namespace KubeClient.Extensions.Configuration.Settings { /// /// Settings for a single instance of the . /// public class SecretConfigurationSettings { /// /// Create new . /// /// /// The used to communicate with the Kubernetes API. /// /// Note: this client will be disposed by the provider. /// /// /// The name of the target Secret. /// /// /// The Kubernetes namespace that contains the target Secret. /// /// /// The name of the target configuration section (if any). /// /// /// Watch the Secret for changes? /// /// /// Throw an exception if the Secret was not found? /// public SecretConfigurationSettings(IKubeApiClient client, string secretName, string kubeNamespace, string sectionName, bool watch, bool throwOnNotFound) { if ( client == null ) throw new ArgumentNullException(nameof(client)); if ( String.IsNullOrWhiteSpace(secretName) ) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'secretName'.", nameof(secretName)); Client = client; SecretName = secretName; KubeNamespace = kubeNamespace; SectionName = sectionName; Watch = watch; ThrowOnNotFound = throwOnNotFound; } /// /// The used to communicate with the Kubernetes API. /// public IKubeApiClient Client { get; } /// /// The name of the target Secret. /// public string SecretName { get; } /// /// The Kubernetes namespace that contains the target Secret. /// public string KubeNamespace { get; } /// /// The name of the target configuration section (if any). /// public string SectionName { get; } /// /// Watch the Secret for changes? /// public bool Watch { get; } /// /// Throw an exception if the Secret was not found? /// public bool ThrowOnNotFound { get; } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources/CustomResourceClientFactoryExtensions.cs ================================================ using System; namespace KubeClient { using ResourceClients; /// /// CRD-related extension methods for . /// public static class CustomResourceClientFactoryExtensions { /// /// Get the Kubernetes CustomResourceDefinitions (v1beta1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static ICustomResourceDefinitionClientV1Beta1 CustomResourceDefinitionsV1Beta1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new CustomResourceDefinitionClientV1Beta1(client) ); } /// /// Get the Kubernetes CustomResourceDefinitions (v1) resource client. /// /// /// The Kubernetes API client. /// /// /// The resource client. /// public static ICustomResourceDefinitionClientV1 CustomResourceDefinitionsV1(this IKubeApiClient kubeClient) { if (kubeClient == null) throw new ArgumentNullException(nameof(kubeClient)); return kubeClient.ResourceClient( client => new CustomResourceDefinitionClientV1(client) ); } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources/CustomResourceDefinitionClientV1.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes CustomResourceDefinitions (v1) API. /// public class CustomResourceDefinitionClientV1 : KubeResourceClient, ICustomResourceDefinitionClientV1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public CustomResourceDefinitionClientV1(IKubeApiClient client) : base(client) { } /// /// Get the CustomResourceDefinition with the specified name. /// /// /// The name of the CustomResourceDefinition to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the CustomResourceDefinition, or null if no CustomResourceDefinition was found with the specified name and namespace. /// public async Task Get(string name, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name }), cancellationToken: cancellationToken ); } /// /// Get all CustomResourceDefinitions in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// The maximum number of results to return. /// /// /// If specified, will be non-null if there are more results available. /// /// /// /// The result of from the previous call. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the jobs. /// public async Task List(string? labelSelector = null, int? limit = null, string? @continue = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { LabelSelector = labelSelector, Limit = limit, Continue = @continue, }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific CustomResourceDefinition. /// /// /// The name of the job to watch. /// /// /// An representing the event stream. /// public IObservable> Watch(string name) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name }), operationDescription: $"watch v1/CustomResourceDefintion '{name}'" ); } /// /// Watch for events relating to CustomResourceDefinitions. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// An representing the event stream. /// public IObservable> WatchAll(string? labelSelector = null) { return ObserveEvents( Requests.WatchCollection.WithTemplateParameters(new { LabelSelector = labelSelector }), operationDescription: $"watch all v1/CustomResourceDefintions with label selector '{labelSelector ?? ""}'" ); } /// /// Request creation of a . /// /// /// A representing the CustomResourceDefinition to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created CustomResourceDefinition. /// public async Task Create(CustomResourceDefinitionV1 newCustomResourceDefinition, CancellationToken cancellationToken = default) { if (newCustomResourceDefinition == null) throw new ArgumentNullException(nameof(newCustomResourceDefinition)); return await Http .PostAsJsonAsync(Requests.Collection, postBody: newCustomResourceDefinition, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async(); } /// /// Request deletion of the specified CustomResourceDefinition. /// /// /// The name of the CustomResourceDefinition to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the job's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteGlobalResource(Requests.ByName, name, propagationPolicy, cancellationToken); } /// /// Request templates for the CustomResourceDefinition (v1) API. /// static class Requests { /// /// A collection-level CustomResourceDefinition (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/apiextensions.k8s.io/v1/customresourcedefinitions?labelSelector={LabelSelector?}&limit={Limit?}&continue={Continue?}"); /// /// A get-by-name CustomResourceDefinition (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/apiextensions.k8s.io/v1/customresourcedefinitions/{Name}"); /// /// A collection-level CustomResourceDefinition watch (v1) request. /// public static readonly HttpRequest WatchCollection = KubeRequest.Create("/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions?labelSelector={LabelSelector?}"); /// /// A watch-by-name CustomResourceDefinition (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{Name}"); } } /// /// Represents a client for the Kubernetes CustomResourceDefinitions (v1) API. /// public interface ICustomResourceDefinitionClientV1 { /// /// Get the CustomResourceDefinition with the specified name. /// /// /// The name of the CustomResourceDefinition to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the CustomResourceDefinition, or null if no CustomResourceDefinition was found with the specified name and namespace. /// Task Get(string name, CancellationToken cancellationToken = default); /// /// Get all CustomResourceDefinitions in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// The maximum number of results to return. /// /// /// If specified, will be non-null if there are more results available. /// /// /// /// The result of from the previous call. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the jobs. /// Task List(string? labelSelector = null, int? limit = null, string? @continue = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific CustomResourceDefinition. /// /// /// The name of the job to watch. /// /// /// An representing the event stream. /// IObservable> Watch(string name); /// /// Watch for events relating to CustomResourceDefinitions. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// An representing the event stream. /// IObservable> WatchAll(string? labelSelector = null); /// /// Request creation of a . /// /// /// A representing the CustomResourceDefinition to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created CustomResourceDefinition. /// Task Create(CustomResourceDefinitionV1 newCustomResourceDefinition, CancellationToken cancellationToken = default); /// /// Request deletion of the specified CustomResourceDefinition. /// /// /// The name of the CustomResourceDefinition to delete. /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the job's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient.Extensions.CustomResources/CustomResourceDefinitionClientV1Beta1.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace KubeClient.ResourceClients { using Http; using Models; /// /// A client for the Kubernetes CustomResourceDefinitions (v1beta1) API. /// public class CustomResourceDefinitionClientV1Beta1 : KubeResourceClient, ICustomResourceDefinitionClientV1Beta1 { /// /// Create a new . /// /// /// The Kubernetes API client. /// public CustomResourceDefinitionClientV1Beta1(IKubeApiClient client) : base(client) { } /// /// Get the CustomResourceDefinition with the specified name. /// /// /// The name of the CustomResourceDefinition to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the CustomResourceDefinition, or null if no CustomResourceDefinition was found with the specified name and namespace. /// public async Task Get(string name, CancellationToken cancellationToken = default) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return await GetSingleResource( Requests.ByName.WithTemplateParameters(new { Name = name }), cancellationToken: cancellationToken ); } /// /// Get all CustomResourceDefinitions in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the jobs. /// public async Task List(string? labelSelector = null, CancellationToken cancellationToken = default) { return await GetResourceList( Requests.Collection.WithTemplateParameters(new { LabelSelector = labelSelector }), cancellationToken: cancellationToken ); } /// /// Watch for events relating to a specific CustomResourceDefinition. /// /// /// The name of the job to watch. /// /// /// An representing the event stream. /// public IObservable> Watch(string name) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); return ObserveEvents( Requests.WatchByName.WithTemplateParameters(new { Name = name }), operationDescription: $"watch v1beta1/CustomResourceDefintion '{name}'" ); } /// /// Watch for events relating to CustomResourceDefinitions. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// An representing the event stream. /// public IObservable> WatchAll(string? labelSelector = null) { return ObserveEvents( Requests.WatchCollection.WithTemplateParameters(new { LabelSelector = labelSelector }), operationDescription: $"watch all v1beta1/CustomResourceDefintions with label selector '{labelSelector ?? ""}'" ); } /// /// Request creation of a . /// /// /// A representing the CustomResourceDefinition to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created CustomResourceDefinition. /// public async Task Create(CustomResourceDefinitionV1Beta1 newCustomResourceDefinition, CancellationToken cancellationToken = default) { if (newCustomResourceDefinition == null) throw new ArgumentNullException(nameof(newCustomResourceDefinition)); return await Http .PostAsJsonAsync(Requests.Collection, postBody: newCustomResourceDefinition, cancellationToken: cancellationToken ) .ReadContentAsObjectV1Async(); } /// /// Request deletion of the specified CustomResourceDefinition. /// /// /// The name of the CustomResourceDefinition to delete. /// /// /// An optional value indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the job's most recent state before it was deleted, if is ; otherwise, a . /// public Task> Delete(string name, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default) { return DeleteGlobalResource(Requests.ByName, name, propagationPolicy, cancellationToken); } /// /// Request templates for the CustomResourceDefinition (v1) API. /// static class Requests { /// /// A collection-level CustomResourceDefinition (v1) request. /// public static readonly HttpRequest Collection = KubeRequest.Create("apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?labelSelector={LabelSelector?}"); /// /// A get-by-name CustomResourceDefinition (v1) request. /// public static readonly HttpRequest ByName = KubeRequest.Create("apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{Name}"); /// /// A collection-level CustomResourceDefinition watch (v1) request. /// public static readonly HttpRequest WatchCollection = KubeRequest.Create("/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions?labelSelector={LabelSelector?}"); /// /// A watch-by-name CustomResourceDefinition (v1) request. /// public static readonly HttpRequest WatchByName = KubeRequest.Create("/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{Name}"); } } /// /// Represents a client for the Kubernetes CustomResourceDefinitions (v1beta1) API. /// public interface ICustomResourceDefinitionClientV1Beta1 { /// /// Get the CustomResourceDefinition with the specified name. /// /// /// The name of the CustomResourceDefinition to retrieve. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the CustomResourceDefinition, or null if no CustomResourceDefinition was found with the specified name and namespace. /// Task Get(string name, CancellationToken cancellationToken = default); /// /// Get all CustomResourceDefinitions in the specified namespace, optionally matching a label selector. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// An optional that can be used to cancel the request. /// /// /// A containing the jobs. /// Task List(string? labelSelector = null, CancellationToken cancellationToken = default); /// /// Watch for events relating to a specific CustomResourceDefinition. /// /// /// The name of the job to watch. /// /// /// An representing the event stream. /// IObservable> Watch(string name); /// /// Watch for events relating to CustomResourceDefinitions. /// /// /// An optional Kubernetes label selector expression used to filter the CustomResourceDefinitions. /// /// /// An representing the event stream. /// IObservable> WatchAll(string? labelSelector = null); /// /// Request creation of a . /// /// /// A representing the CustomResourceDefinition to create. /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the current state for the newly-created CustomResourceDefinition. /// Task Create(CustomResourceDefinitionV1Beta1 newCustomResourceDefinition, CancellationToken cancellationToken = default); /// /// Request deletion of the specified CustomResourceDefinition. /// /// /// The name of the CustomResourceDefinition to delete. /// /// /// A indicating how child resources should be deleted (if at all). /// /// /// An optional that can be used to cancel the request. /// /// /// A representing the job's most recent state before it was deleted, if is ; otherwise, a . /// Task> Delete(string name, DeletePropagationPolicy? propagationPolicy = null, CancellationToken cancellationToken = default); } } ================================================ FILE: src/KubeClient.Extensions.CustomResources/KubeClient.Extensions.CustomResources.csproj ================================================  net7.0;net8.0;net9.0;net10.0;netstandard2.1 enable Custom Resource Definition (CRD) support for KubeClient ================================================ FILE: src/KubeClient.Extensions.CustomResources/KubeCustomResourceV1.cs ================================================ using System; using Newtonsoft.Json; namespace KubeClient.Models { /// /// The base class for models representing Kubernetes Custom Resources (CRDs). /// public abstract class KubeCustomResourceV1 : KubeResourceV1 { /// /// Create a new . /// protected KubeCustomResourceV1() { if (String.IsNullOrEmpty(Kind) || string.IsNullOrWhiteSpace(ApiVersion)) throw new KubeClientException($"Class '{GetType().Name}' derives from '{nameof(KubeCustomResourceV1)}' but is not decorated with the 'KubeResource' attribute."); } } /// /// The base class for models representing Kubernetes Custom Resource Definitions (CRDs). /// /// /// The type of model used to represent the resource specification. /// public abstract class KubeCustomResourceV1 : KubeCustomResourceV1 where TSpecification : class { /// /// Create a new . /// protected KubeCustomResourceV1() { } /// /// The resource specification. /// [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public virtual TSpecification? Specification { get; set; } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources/KubeCustomResourceV1Beta1.cs ================================================ using System; using Newtonsoft.Json; namespace KubeClient.Models { /// /// The base class for models representing Kubernetes Custom Resources (CRDs). /// public abstract class KubeCustomResourceV1Beta1 : KubeResourceV1 { /// /// Create a new . /// protected KubeCustomResourceV1Beta1() { if (String.IsNullOrEmpty(Kind) || string.IsNullOrWhiteSpace(ApiVersion)) throw new KubeClientException($"Class '{GetType().Name}' derives from '{nameof(KubeCustomResourceV1Beta1)}' but is not decorated with the 'KubeResource' attribute."); } } /// /// The base class for models representing Kubernetes Custom Resource Definitions (CRDs). /// /// /// The type of model used to represent the resource specification. /// public abstract class KubeCustomResourceV1Beta1 : KubeCustomResourceV1Beta1 where TSpecification : class { /// /// Create a new . /// protected KubeCustomResourceV1Beta1() { } /// /// The resource specification. /// [JsonProperty("spec", NullValueHandling = NullValueHandling.Ignore)] public virtual TSpecification? Specification { get; set; } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.CodeGen/CodeGenHelper.cs ================================================ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Editing; using Microsoft.CodeAnalysis.Host.Mef; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; // Some things we do, at the moment, are C#-specific. // If we want to be language-agnostic, we will probably need to create an MSBuildWorkspace, // load or create a real project that imports the required libraries and packages, and then get ITypeSymbols from there. using CSFactory = Microsoft.CodeAnalysis.CSharp.SyntaxFactory; namespace KubeClient.Extensions.CustomResources.CodeGen { /// /// Helper methods for code generation with Microsoft Roslyn. /// static class CodeGenHelper { public static readonly SyntaxList EmptyXmlNodeList = CSFactory.List(); public static readonly XmlTextSyntax NewlineText = CSFactory.XmlText(CSFactory.TokenList( CSFactory.XmlTextNewLine("\n") )); public static string IndentString(int indent = 0) => new String(' ', indent * 4); public static XmlTextSyntax IndentText(int indent = 0) { return CSFactory.XmlText( IndentString(indent) ); } public static XmlTextSyntax IndentedText(string text, int indent = 0) { StringBuilder textBuilder = new StringBuilder() .Append( IndentString(indent) ) .Append(text); return CSFactory.XmlText( textBuilder.ToString() ); } public static string GetLanguageName(this SyntaxGenerator syntaxGenerator) { if (syntaxGenerator == null) throw new ArgumentNullException(nameof(syntaxGenerator)); string serviceType = typeof(SyntaxGenerator).FullName!; Type generatorType = syntaxGenerator.GetType(); ExportLanguageServiceAttribute? exportLanguageServiceAttribute = generatorType .GetCustomAttributes() .FirstOrDefault( attribute => attribute.ServiceType.StartsWith(serviceType) ); if (exportLanguageServiceAttribute != null) return exportLanguageServiceAttribute.Language; throw new NotSupportedException($"Cannot determine language name for SyntaxGenerator: '{generatorType.FullName}'."); } public static TSyntax WithLeadingNewline(this TSyntax syntaxNode) where TSyntax : SyntaxNode { if (syntaxNode == null) throw new ArgumentNullException(nameof(syntaxNode)); return syntaxNode.WithLeadingTrivia( syntaxNode.GetLeadingTrivia().Add(CSFactory.LineFeed) ); } public static TSyntax WithTrailingNewline(this TSyntax syntaxNode) where TSyntax : SyntaxNode { if (syntaxNode == null) throw new ArgumentNullException(nameof(syntaxNode)); return syntaxNode.WithTrailingTrivia( syntaxNode.GetTrailingTrivia().Add(CSFactory.LineFeed) ); } public static SyntaxNode WithTrailingSpace(this SyntaxNode syntaxNode) { if (syntaxNode == null) throw new ArgumentNullException(nameof(syntaxNode)); return syntaxNode.WithTrailingTrivia( syntaxNode.GetTrailingTrivia().Add(CSFactory.Space) ); } public static TSyntax WithIndent(this TSyntax node, int indent) where TSyntax : SyntaxNode { return node.WithLeadingTrivia( node.GetLeadingTrivia().Add( CSFactory.Whitespace( IndentString(indent) ) ) ); } public static SyntaxNode NamespaceImport(this SyntaxGenerator generator, string namespaceName) { if (generator == null) throw new ArgumentNullException(nameof(generator)); if (String.IsNullOrWhiteSpace(namespaceName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(namespaceName)}.", nameof(namespaceName)); return generator .NamespaceImportDeclaration( name: generator.DottedName(namespaceName) ) .NormalizeWhitespace(); } public static SyntaxNode Namespace(this SyntaxGenerator generator, string namespaceName, params SyntaxNode[] declarations) { if (generator == null) throw new ArgumentNullException(nameof(generator)); if (String.IsNullOrWhiteSpace(namespaceName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(namespaceName)}.", nameof(namespaceName)); return generator.Namespace( namespaceName, declarations.AsEnumerable() ); } public static SyntaxNode Namespace(this SyntaxGenerator generator, string namespaceName, IEnumerable declarations) { if (generator == null) throw new ArgumentNullException(nameof(generator)); if (String.IsNullOrWhiteSpace(namespaceName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(namespaceName)}.", nameof(namespaceName)); if (declarations == null) throw new ArgumentNullException(nameof(declarations)); return generator .NamespaceDeclaration( name: generator.DottedName(namespaceName), declarations: declarations ) .WithLeadingNewline(); } public static TSyntax WithDocumentation(this TSyntax syntaxNode, params XmlNodeSyntax[] content) where TSyntax : SyntaxNode { if (syntaxNode == null) throw new ArgumentNullException(nameof(syntaxNode)); if (content == null) throw new ArgumentNullException(nameof(content)); return syntaxNode.WithDocumentation( content.AsEnumerable() ); } public static TSyntax WithDocumentation(this TSyntax syntaxNode, IEnumerable content) where TSyntax : SyntaxNode { if (syntaxNode == null) throw new ArgumentNullException(nameof(syntaxNode)); if (content == null) throw new ArgumentNullException(nameof(content)); return syntaxNode.WithoutLeadingTrivia().WithLeadingTrivia( CSFactory.Trivia( CSFactory.DocumentationCommentTrivia( kind: SyntaxKind.SingleLineDocumentationCommentTrivia, content: CSFactory.List(content) ) .WithLeadingTrivia( CSFactory.DocumentationCommentExterior("/// ") ) .WithoutTrailingTrivia() .WithTrailingNewline() ) ); } public static XmlElementSyntax ListElement(this SyntaxGenerator generator, string type, int indent, params string[] itemContent) { if (generator == null) throw new ArgumentNullException(nameof(generator)); if (String.IsNullOrWhiteSpace(type)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(type)}.", nameof(type)); return generator.ListElement(type, indent, itemContent.Select(CSFactory.XmlText) ); } public static XmlElementSyntax ListElement(this SyntaxGenerator generator, string type, int indent, params XmlTextSyntax[] itemContent) { if (generator == null) throw new ArgumentNullException(nameof(generator)); if (String.IsNullOrWhiteSpace(type)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(type)}.", nameof(type)); return generator.ListElement(type, indent, itemContent.AsEnumerable() ); } public static XmlElementSyntax ListElement(this SyntaxGenerator generator, string type, int indent, IEnumerable itemContent) { if (generator == null) throw new ArgumentNullException(nameof(generator)); if (String.IsNullOrWhiteSpace(type)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(type)}.", nameof(type)); if (itemContent == null) throw new ArgumentNullException(nameof(itemContent)); SyntaxList listContent = CSFactory.List() .Add(NewlineText) .AddRange( itemContent.SelectMany(itemContent => [ CSFactory.XmlElement("item", [ itemContent ]) .WithIndent(indent + 1), NewlineText, ]) ); return CSFactory .XmlMultiLineElement("list", listContent) .AddStartTagAttributes( CSFactory.XmlTextAttribute("type", type) ) .WithEndTag( CSFactory.XmlElementEndTag( CSFactory.XmlName("list") ) .WithIndent(indent) ) .WithIndent(indent); } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.CodeGen/KubeClient.Extensions.CustomResources.CodeGen.csproj ================================================  net7.0;net8.0;net9.0;net10.0 enable Custom Resource Definition (CRD) code-generation support for KubeClient ================================================ FILE: src/KubeClient.Extensions.CustomResources.CodeGen/ModelGeneratorV1.cs ================================================ using KubeClient.Extensions.CustomResources.Schema; using KubeClient.Models; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Editing; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; // Some things we do, at the moment, are C#-specific. // If we want to be language-agnostic, we will probably need to create an MSBuildWorkspace, // load or create a real project that imports the required libraries and packages, and then get ITypeSymbols from there. using CS = Microsoft.CodeAnalysis.CSharp.Syntax; using CSFactory = Microsoft.CodeAnalysis.CSharp.SyntaxFactory; using CSSyntaxKind = Microsoft.CodeAnalysis.CSharp.SyntaxKind; namespace KubeClient.Extensions.CustomResources.CodeGen { /// /// Code generator for models, and associated types. /// public static class ModelGeneratorV1 { /// /// Predefinued s representing commonly-used attributes on model types and their members. /// static class Attributes { /// /// Predefinued nodes representing commonly-used attributes on model types and their members. /// public static class CSharp { /// /// A predefined node representing a attribute on a member of a JSON-serialisable model. /// public static readonly CS.AttributeSyntax JsonExtensionData = CSFactory.Attribute( name: CSFactory.ParseName("JsonExtensionData") ); } } /// /// Predefinued s representing commonly-used declaration modifiers. /// static class Modifiers { /// /// Predefinued s representing commonly-used C# declaration modifiers. /// public static class CSharp { /// /// A node representing the C# "readonly" declaration-modifier keyword (). /// public static readonly SyntaxToken ReadOnly = CSFactory.Token(CSSyntaxKind.ReadOnlyKeyword); } } /// /// Predefinued s representing commonly-used type references. /// static class TypeReferences { /// /// Predefinued nodes representing commonly-used C# type references. /// public static class CSharp { /// /// A predefined node representing a JSON extension-data dictionary (a mapping to ). /// public static readonly CS.TypeSyntax JsonExtensionData = CSFactory.ParseTypeName("Dictionary"); /// /// A predefined node representing the base class for resource models. /// public static readonly CS.TypeSyntax KubeResourceV1 = CSFactory.ParseTypeName("KubeResourceV1"); } } /// /// Predefinued s representing commonly-used field declarations. /// static class FieldDeclarations { /// /// Predefinued nodes representing commonly-used C# field references. /// public static class CSharp { /// /// A predefined node representing the "_jsonExtensionDataField" on a JSON-serialisable model. /// public static readonly CS.FieldDeclarationSyntax JsonExtensionData = CSFactory.FieldDeclaration( attributeLists: [ CSFactory.AttributeList([ Attributes.CSharp.JsonExtensionData ]) ], modifiers: [ Modifiers.CSharp.ReadOnly ], declaration: CSFactory.VariableDeclaration( type: TypeReferences.CSharp.JsonExtensionData, variables: [ CSFactory.VariableDeclarator("_jsonExtensionData").WithInitializer( CSFactory.EqualsValueClause( CSFactory.ObjectCreationExpression( type: TypeReferences.CSharp.JsonExtensionData, argumentList: CSFactory.ArgumentList(), initializer: null ) ) ) ] ) ) .WithDocumentation( CSFactory.XmlSummaryElement( CodeGenHelper.NewlineText, CodeGenHelper.IndentedText("Unmapped JSON data (i.e. not mapped to a member of the model type) to improve round-trip behaviour when updating resources via PUT.", indent: 1), CodeGenHelper.NewlineText ) ); } } /// /// Generate model code for a resource type (and any related complex types) in the specified . /// /// /// A representing the source schema. /// /// /// A that identifies the target resource type. /// /// /// The that the generated code will be added to. /// /// /// The target namespace for the generated code. /// /// /// A modified copy of the (it is the caller's responsibility to call ). /// public static Project GenerateModels(KubeSchema schema, KubeResourceType resourceType, Project project, string targetNamespace) { if (schema == null) throw new ArgumentNullException(nameof(schema)); if (resourceType == null) throw new ArgumentNullException(nameof(resourceType)); if (project == null) throw new ArgumentNullException(nameof(project)); if (String.IsNullOrWhiteSpace(targetNamespace)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(targetNamespace)}.", nameof(targetNamespace)); KubeModel? model; if (!schema.ResourceTypes.TryGetValue(resourceType, out model)) throw new ArgumentException($"Schema does not contain any metadata for resource type '{resourceType.ToResourceTypeName()}'.", nameof(schema)); // TODO: Work out how, if we need to at all, to group shared complex types so we can put each resource type in its own file with any complex types that are only associated with that resource. var complexTypes = new HashSet(); DiscoverComplexTypes(model, complexTypes); Document document = GenerateModels(project, model, complexTypes, targetNamespace); return document.Project; } /// /// Generate type declarations for a resource model and its related complex types (if any). /// /// /// The that the generated code's containing will be added to. /// /// /// A representing the resource-model metadata. /// /// /// A sequence of 0 or more representing the complex type metadata (if any). /// /// /// The fully-qualified namespace for the generated code. /// /// /// A containing the generated code. /// static Document GenerateModels(Project project, KubeModel model, IEnumerable complexTypes, string targetNamespace) { if (model == null) throw new ArgumentNullException(nameof(model)); if (complexTypes == null) throw new ArgumentNullException(nameof(complexTypes)); if (project == null) throw new ArgumentNullException(nameof(project)); SyntaxGenerator syntaxGenerator = SyntaxGenerator.GetGenerator(project); SyntaxNode generatedModel = syntaxGenerator.CompilationUnit( syntaxGenerator.NamespaceImport("KubeClient.Models"), syntaxGenerator.NamespaceImport("Newtonsoft.Json"), syntaxGenerator.NamespaceImport("Newtonsoft.Json.Linq"), syntaxGenerator.NamespaceImport("System"), syntaxGenerator.NamespaceImport("System.Collections.Generic"), syntaxGenerator.NamespaceImport("YamlDotNet.Serialization"), syntaxGenerator.Namespace(targetNamespace, declarations: GenerateResourceDeclarations([model], syntaxGenerator).Select( classDeclaration => classDeclaration.WithTrailingNewline() ).Concat( GenerateComplexTypeDeclarations(complexTypes, syntaxGenerator).Select( classDeclaration => classDeclaration.WithTrailingNewline() ) ) ) ); return project.AddDocument($"{model.ClrTypeName}.cs", generatedModel); } /// /// Generate type declarations for resource models. /// /// /// A sequence of s representing the resource models. /// /// /// The current (language-specific) used to generate code. /// /// /// A sequence of corresponding s representing the resource type declarations. /// static IEnumerable GenerateResourceDeclarations(IEnumerable models, SyntaxGenerator syntaxGenerator) { if (models == null) throw new ArgumentNullException(nameof(models)); if (syntaxGenerator == null) throw new ArgumentNullException(nameof(syntaxGenerator)); foreach (KubeModel model in models.OrderBy(model => model.ClrTypeName)) { yield return syntaxGenerator.AddAttributes( declaration: syntaxGenerator.ClassDeclaration( name: model.ClrTypeName, baseType: TypeReferences.CSharp.KubeResourceV1, accessibility: Accessibility.Public, modifiers: DeclarationModifiers.Partial, members: [ FieldDeclarations.CSharp.JsonExtensionData.WithTrailingNewline(), .. GenerateProperties(model.Properties, syntaxGenerator) ] ), attributes: [ syntaxGenerator.Attribute("KubeObject", attributeArguments: [ syntaxGenerator.LiteralExpression(model.ResourceType.ResourceKind), // kind syntaxGenerator.LiteralExpression($"{model.ResourceType.Group}/{model.ResourceType.Version}") // groupVersion ]), .. model.ResourceApis.PrimaryApi.SupportedVerbs.Select( verb => syntaxGenerator.Attribute("KubeApi", attributeArguments: [ syntaxGenerator.MemberAccessExpression( CSFactory.ParseTypeName(nameof(KubeAction)), CSFactory.IdentifierName(verb.KubeAction.ToString()) ), syntaxGenerator.LiteralExpression(model.ResourceApis.PrimaryApi.Path) ]) ) ] ) .WithDocumentation( CSFactory.XmlSummaryElement( CodeGenHelper.NewlineText, CodeGenHelper.IndentedText(model.Summary ?? "No description is available.", indent: 1), CodeGenHelper.NewlineText ) ) .WithTrailingNewline(); } } /// /// Generate type declarations for complex type models. /// /// /// A sequence of s representing the complex types. /// /// /// The current (language-specific) used to generate code. /// /// /// A sequence of corresponding s representing the complex type declarations. /// static IEnumerable GenerateComplexTypeDeclarations(IEnumerable complexTypes, SyntaxGenerator syntaxGenerator) { if (syntaxGenerator == null) throw new ArgumentNullException(nameof(syntaxGenerator)); if (complexTypes == null) throw new ArgumentNullException(nameof(complexTypes)); foreach (KubeComplexType complexType in complexTypes.OrderBy(complexType => complexType.ClrTypeName)) { yield return syntaxGenerator .ClassDeclaration( complexType.ClrTypeName, accessibility: Accessibility.Public, modifiers: DeclarationModifiers.Partial, members: [ FieldDeclarations.CSharp.JsonExtensionData.WithTrailingNewline(), .. GenerateProperties(complexType.Properties, syntaxGenerator) ] ) .WithDocumentation( CSFactory.XmlSummaryElement( CodeGenHelper.NewlineText, CodeGenHelper.IndentedText(complexType.Summary ?? "No description is available.", indent: 1), CodeGenHelper.NewlineText ) ) .WithTrailingNewline(); } } /// /// Generate property declarations for model properties. /// /// /// A sequence of key-value pairs, each representing a property name and corresponding . /// /// /// The current (language-specific) used to generate code. /// /// /// A sequence of corresponding s representing the property declarations. /// static IEnumerable GenerateProperties(IEnumerable> properties, SyntaxGenerator syntaxGenerator) { if (properties == null) throw new ArgumentNullException(nameof(properties)); if (syntaxGenerator == null) throw new ArgumentNullException(nameof(syntaxGenerator)); foreach ((string propertyName, KubeModelProperty property) in properties.OrderBy(item => item.Key)) { SyntaxNode propertyType = property.DataType switch { KubeIntrinsicDataType intrinsicDataType => GetTypeReference(intrinsicDataType, syntaxGenerator), KubeDataType dataType => GetDataType(dataType, syntaxGenerator), }; SyntaxNode propertyDeclaration = syntaxGenerator.PropertyDeclaration(propertyName, type: propertyType, accessibility: Accessibility.Public ); propertyDeclaration = syntaxGenerator.AddAttributes(propertyDeclaration, // [YamlMember(Alias = "myProperty")] syntaxGenerator.Attribute("YamlMember", syntaxGenerator.AttributeArgument("Alias", syntaxGenerator.LiteralExpression(property.SerializedName) ) ), // [JsonProperty("myProperty")] syntaxGenerator.Attribute("JsonProperty", syntaxGenerator.AttributeArgument( syntaxGenerator.LiteralExpression(property.SerializedName) ) ) ); propertyDeclaration = propertyDeclaration.WithDocumentation( CSFactory.XmlSummaryElement( CodeGenHelper.NewlineText, CodeGenHelper.IndentedText(property.Summary ?? "No description is available.", indent: 1), CodeGenHelper.NewlineText ) ); yield return propertyDeclaration.WithTrailingNewline(); } } /// /// Get a type reference corresponding to the specified intrinsic data-type. /// /// /// A representing the intrinsic data-type. /// /// /// The current (language-specific) used to generate code. /// /// /// A representing the type reference. /// static SyntaxNode GetTypeReference(KubeIntrinsicDataType intrinsicDataType, SyntaxGenerator syntaxGenerator) { if (intrinsicDataType == null) throw new ArgumentNullException(nameof(intrinsicDataType)); if (syntaxGenerator == null) throw new ArgumentNullException(nameof(syntaxGenerator)); SpecialType intrinsicType = intrinsicDataType.Name switch { "int" => SpecialType.System_Int32, "double" => SpecialType.System_Double, "long" => SpecialType.System_Int64, "string" => SpecialType.System_String, _ => SpecialType.None }; if (intrinsicType != SpecialType.None) return syntaxGenerator.TypeExpression(intrinsicType); // TODO: This won't work for any language other than C#; find a non-broken way to handle it! // Will probably need to create an MSBuildWorkspace, load or create a real project that imports the required libraries and packages (then get ITypeSymbols from there). return CSFactory.ParseTypeName( intrinsicDataType.GetClrTypeName() ); } /// /// Get a type reference corresponding to the specified data-type. /// /// /// A representing the data-type. /// /// /// The current (language-specific) used to generate code. /// /// /// A representing the type reference. /// static SyntaxNode GetDataType(KubeDataType dataType, SyntaxGenerator syntaxGenerator) { if (dataType == null) throw new ArgumentNullException(nameof(dataType)); if (syntaxGenerator == null) throw new ArgumentNullException(nameof(syntaxGenerator)); // TODO: This won't work for any language other than C#; find a non-broken way to handle it! // Will probably need to create an MSBuildWorkspace, load or create a real project that imports the required libraries and packages (then get ITypeSymbols from there). return CSFactory.ParseTypeName( dataType.GetClrTypeName() ); } /// /// Recursively discover complex types referenced by a Kubernetes resource type. /// /// /// A representing the target resource type. /// /// /// A set of s representing all discovered complex types. /// static void DiscoverComplexTypes(KubeModel containingModel, HashSet complexTypes) { if (containingModel == null) throw new ArgumentNullException(nameof(containingModel)); if (complexTypes == null) throw new ArgumentNullException(nameof(complexTypes)); foreach (KubeModelProperty property in containingModel.Properties.Values) { KubeComplexType? complexType; if (!TryGetComplexType(property.DataType, out complexType)) continue; if (!complexTypes.Add(complexType)) continue; // Already processed. DiscoverComplexTypes(complexType, complexTypes); } } /// /// Recursively discover complex types referenced by a Kubernetes complex type. /// /// /// A representing the target complex type. /// /// /// A set of s representing all discovered complex types. /// static void DiscoverComplexTypes(KubeComplexType containingType, HashSet complexTypes) { if (containingType == null) throw new ArgumentNullException(nameof(containingType)); if (complexTypes == null) throw new ArgumentNullException(nameof(complexTypes)); foreach (KubeModelProperty property in containingType.Properties.Values) { KubeComplexType? complexType; if (!TryGetComplexType(property.DataType, out complexType)) continue; if (!complexTypes.Add(complexType)) continue; // Already processed. // Recurse. DiscoverComplexTypes(complexType, complexTypes); } } /// /// Attempt to resolve a from a . /// /// /// The to inspect. /// /// /// If successful, receives the (otherwise, null). /// /// /// true, if successful; otherwise, false. /// /// /// Recurses into element types for array / dictionary data types. /// static bool TryGetComplexType(KubeDataType dataType, [NotNullWhen(returnValue: true)] out KubeComplexType? complexType) { if (dataType == null) throw new ArgumentNullException(nameof(dataType)); complexType = null; if (dataType is KubeArrayDataType arrayDataType && arrayDataType.ElementType is KubeComplexDataType arrayElementDataType) complexType = arrayElementDataType.ComplexType; else if (dataType is KubeDictionaryDataType dictionaryDataType && dictionaryDataType.ElementType is KubeComplexDataType dictionaryElementDataType) complexType = dictionaryElementDataType.ComplexType; else if (dataType is KubeComplexDataType complexDataType) complexType = complexDataType.ComplexType; return complexType != null; } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/AssemblyVisibility.cs ================================================ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("KubeClient.Extensions.CustomResources.Tests")] ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/CustomResourceSchemaExtensions.cs ================================================ using KubeClient.Models; using System; namespace KubeClient.Extensions.CustomResources.Schema { /// /// Schema-related extension methods for working with and related types. /// public static class CustomResourceSchemaExtensions { /// /// Generate a JSON schema for validating the specification model for a Custom Resource Definition (CRD). /// /// /// The type of model used to represent the CRD specification. /// /// /// The Custom Resource Definition (CRD). /// /// /// The configured . /// public static JSONSchemaPropsV1Beta1 GenerateSpecificationSchema(this KubeCustomResourceV1Beta1 customResource) where TSpecification : class { if (customResource == null) throw new ArgumentNullException(nameof(customResource)); return SchemaGeneratorV1Beta1.GenerateSchema(modelType: typeof(TSpecification)); } /// /// Generate a JSON schema for validating the specification model for a Custom Resource Definition (CRD). /// /// /// The type of model used to represent the CRD specification. /// /// /// The Custom Resource Definition (CRD). /// /// /// The configured . /// public static JSONSchemaPropsV1 GenerateSpecificationSchema(this KubeCustomResourceV1 customResource) where TSpecification : class { if (customResource == null) throw new ArgumentNullException(nameof(customResource)); return SchemaGeneratorV1.GenerateSchema(modelType: typeof(TSpecification)); } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/JsonSchemaParserV1.cs ================================================ using KubeClient.ApiMetadata; using KubeClient.Extensions.CustomResources.Schema.Utilities; using KubeClient.Models; using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; namespace KubeClient.Extensions.CustomResources.Schema { /// /// Parses from . /// /// /// TODO: Handle required/nullable properties (and use nullable type support as required). /// public static class JsonSchemaParserV1 { /// /// Build a from one or more Custom Resource Definitions (CRDs). /// /// /// The Kubernetes API-metadata cache. /// /// /// The s. /// /// /// A representing the CRDs and any related types. /// public static KubeSchema BuildKubeSchema(KubeApiMetadataCache apiMetadataCache, params CustomResourceDefinitionV1[] customResourceDefinitions) => BuildKubeSchema(apiMetadataCache, customResourceDefinitions.AsEnumerable()); /// /// Build a from one or more Custom Resource Definitions (CRDs). /// /// /// The Kubernetes API-metadata cache. /// /// /// The s. /// /// /// A representing the CRDs and any related types. /// public static KubeSchema BuildKubeSchema(KubeApiMetadataCache apiMetadataCache, IEnumerable customResourceDefinitions) { if (apiMetadataCache == null) throw new ArgumentNullException(nameof(apiMetadataCache)); if (customResourceDefinitions == null) throw new ArgumentNullException(nameof(customResourceDefinitions)); Dictionary dataTypes = new Dictionary(); Dictionary resourceTypes = new Dictionary(); foreach (CustomResourceDefinitionV1 customResourceDefinition in customResourceDefinitions) { if (customResourceDefinition.Spec.Versions.Count == 0) throw new KubeClientException($"Invalid custom resource definition (CRD) '{customResourceDefinition.Metadata.Name}': no versions declared."); CustomResourceDefinitionVersionV1 primaryVersion = customResourceDefinition.Spec.Versions[0]; KubeResourceType resourceType = new KubeResourceType(Group: customResourceDefinition.Spec.Group, Version: primaryVersion.Name, ResourceKind: customResourceDefinition.Spec.Names.Kind); if (resourceTypes.ContainsKey(resourceType)) continue; KubeApiMetadata apiMetadata = apiMetadataCache.Get( kind: resourceType.ResourceKind, apiGroup: resourceType.Group, apiVersion: resourceType.Version ); if (apiMetadata == null) throw new KubeClientException($"Cannot process custom resource definition (CRD) '{resourceType.ToResourceTypeName()}': no API metadata for this resource type was found in the cache."); KubeModel resourceTypeModel = ParseResourceType(resourceType, apiMetadata, primaryVersion.Schema.OpenAPIV3Schema, dataTypes); resourceTypes.Add(resourceType, resourceTypeModel); } return new KubeSchema( ResourceTypes: ImmutableDictionary.CreateRange(resourceTypes), DataTypes: ImmutableDictionary.CreateRange(dataTypes) ); } /// /// Parse a resource type into a . /// /// /// A that identifies the target resource type. /// /// /// The API metadata for the target resource type. /// /// /// representing the schema for the target resource type. /// /// /// Known data types that have already been processed (or are well-known). /// /// /// The new . /// static KubeModel ParseResourceType(KubeResourceType resourceType, KubeApiMetadata apiMetadata, JSONSchemaPropsV1 resourceTypeSchema, Dictionary knownDataTypes) { if (resourceType == null) throw new ArgumentNullException(nameof(resourceType)); if (apiMetadata == null) throw new ArgumentNullException(nameof(apiMetadata)); if (resourceTypeSchema == null) throw new ArgumentNullException(nameof(resourceTypeSchema)); if (resourceTypeSchema.Type != "object") throw new InvalidOperationException("Invalid resource-type schema ('type' is not 'object')."); if (knownDataTypes == null) throw new ArgumentNullException(nameof(knownDataTypes)); Stack propertyPathSegments = new Stack(); Dictionary modelProperties = new Dictionary(); foreach ((string jsonPropertyName, JSONSchemaPropsV1 propertySchema) in resourceTypeSchema.Properties) { propertyPathSegments.Push(jsonPropertyName); KubeDataType propertyDataType = ParseDataType(resourceType, propertyPathSegments, propertySchema, knownDataTypes); string sanitizedPropertyName = NameWrangler.CapitalizeName( NameWrangler.SanitizeName(jsonPropertyName) ); string[] mergeStrategies = (resourceTypeSchema.KubernetesPatchMergeStrategy ?? String.Empty).Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries); modelProperties.Add(sanitizedPropertyName, new KubeModelProperty( sanitizedPropertyName, propertySchema.Description, propertyDataType, jsonPropertyName, IsOptional: !resourceTypeSchema.Required.Contains(jsonPropertyName), IsMerge: mergeStrategies.Contains("merge"), MergeKey: resourceTypeSchema.KubernetesPatchMergeKey, IsRetainKeys: mergeStrategies.Contains("retainKeys") ) ); propertyPathSegments.Pop(); } KubeResourceApis resourceApis = ParseApiMetadata(resourceType, apiMetadata); return new KubeModel( ResourceType: resourceType, Summary: resourceTypeSchema.Description ?? "Documentation is not available for this resource type.", Properties: ImmutableDictionary.CreateRange(modelProperties), ResourceApis: resourceApis ); } /// /// Parse a data-type schema into a . /// /// /// A that identifies the target resource type. /// /// /// A stack of property names representing the path from the current resource type to the current data-type. /// /// /// representing the schema for the target data type. /// /// /// Known data types that have already been processed (or are well-known). /// /// /// The . /// static KubeDataType ParseDataType(KubeResourceType resourceType, Stack propertyPathSegments, JSONSchemaPropsV1 schema, Dictionary dataTypes) { if (resourceType == null) throw new ArgumentNullException(nameof(resourceType)); if (propertyPathSegments == null) throw new ArgumentNullException(nameof(propertyPathSegments)); if (schema == null) throw new ArgumentNullException(nameof(schema)); if (dataTypes == null) throw new ArgumentNullException(nameof(dataTypes)); KubeDataType? dataType; string dataTypeName = GetDataTypeName(resourceType, propertyPathSegments); if (dataTypes.TryGetValue(dataTypeName, out dataType)) return dataType; string typeName, typeFormat; if (!String.IsNullOrWhiteSpace(schema.Type)) { typeName = schema.Type; typeFormat = schema.Format; switch (typeName) { case "array": { JSONSchemaPropsV1 itemSchema = schema.Items; if (itemSchema.Description is null) itemSchema.Description = schema.Description; KubeDataType elementDataType = ParseDataType(resourceType, propertyPathSegments, itemSchema, dataTypes); dataType = new KubeArrayDataType(elementDataType); return dataType; } case "object": { if (schema.Properties.Count == 0 && schema.KubernetesPreserveUnknownFields == true) return KubeDynamicObjectDataType.Instance; Dictionary modelProperties = new Dictionary(); foreach ((string jsonPropertyName, JSONSchemaPropsV1 propertySchema) in schema.Properties) { propertyPathSegments.Push(jsonPropertyName); KubeDataType propertyDataType = ParseDataType(resourceType, propertyPathSegments, propertySchema, dataTypes); string sanitizedPropertyName = NameWrangler.CapitalizeName( NameWrangler.SanitizeName(jsonPropertyName) ); string[] mergeStrategies = (propertySchema.KubernetesPatchMergeStrategy ?? String.Empty).Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries); modelProperties.Add(sanitizedPropertyName, new KubeModelProperty( Name: sanitizedPropertyName, Summary: propertySchema.Description, DataType: propertyDataType, SerializedName: jsonPropertyName, IsOptional: !propertySchema.Required.Contains(jsonPropertyName), IsMerge: mergeStrategies.Contains("merge"), MergeKey: propertySchema.KubernetesPatchMergeKey, IsRetainKeys: mergeStrategies.Contains("retainKeys") ) ); propertyPathSegments.Pop(); } KubeComplexType subModel = new KubeComplexType( Name: dataTypeName, Summary: schema.Description ?? "No description is available", Properties: ImmutableDictionary.CreateRange(modelProperties) ); KubeComplexDataType subModelDataType = new KubeComplexDataType(subModel); dataTypes.Add(dataTypeName, subModelDataType); return subModelDataType; } case "number": { if (typeFormat == "double") return new KubeIntrinsicDataType("double"); break; } case "integer": { if (typeFormat == "int32") return new KubeIntrinsicDataType("int"); else if (typeFormat == "int46") return new KubeIntrinsicDataType("long"); return new KubeIntrinsicDataType("int"); } case "string": case "boolean": { return new KubeIntrinsicDataType(typeName); } default: { if (!dataTypes.TryGetValue(typeName, out KubeDataType? intrinsicDataType)) { intrinsicDataType = new KubeIntrinsicDataType(typeName); dataTypes.Add(typeName, intrinsicDataType); } return intrinsicDataType; } } } if (String.IsNullOrWhiteSpace(schema.Ref)) throw new KubeClientException($"Schema is missing '$ref'."); typeName = schema.Ref.Replace("#/definitions/", String.Empty); if (!dataTypes.TryGetValue(typeName, out dataType)) { string summary = schema.Description ?? "Description not provided."; dataType = new KubeDataType(typeName, summary); dataTypes.Add(typeName, dataType); } return dataType; } /// /// Detemine the name for a representing a complex data-type. /// /// /// A that identifies the current resource type. /// /// /// A stack of property names representing the path from the current resource type to the current data-type. /// /// /// The data-type name. /// static string GetDataTypeName(KubeResourceType resourceType, Stack propertyPathSegments) { if (resourceType == null) throw new ArgumentNullException(nameof(resourceType)); if (propertyPathSegments == null) throw new ArgumentNullException(nameof(propertyPathSegments)); string prettyApiVersion = NameWrangler.CapitalizeName(resourceType.Version); string typeNameFromPropertyPath = String.Join(String.Empty, propertyPathSegments.Reverse().Select(NameWrangler.CapitalizeName) ); return $"{resourceType.ResourceKind}{typeNameFromPropertyPath}{prettyApiVersion}"; } /// /// Parse API metadata for the specified Kubernetes resource type. /// /// /// A representing the target resource type. /// /// /// API metadata (from a ) for the target resource type. /// /// /// representing the parsed API metadata. /// static KubeResourceApis ParseApiMetadata(KubeResourceType resourceType, KubeApiMetadata apiMetadata) { if (resourceType == null) throw new ArgumentNullException(nameof(resourceType)); if (apiMetadata == null) throw new ArgumentNullException(nameof(apiMetadata)); KubeResourceApi? primaryApi = null; if (apiMetadata.PrimaryPathMetadata != null) { ImmutableList supportedVerbs = ImmutableList.CreateRange( apiMetadata.PrimaryPathMetadata.Verbs.Select(KubeResourceApiVerb.FromKubeApiVerb) ); primaryApi = new KubeResourceApi(apiMetadata.PrimaryPathMetadata.Path, IsNamespaced: false, supportedVerbs); } KubeResourceApi? primaryNamespacedApi = null; if (apiMetadata.PrimaryNamespacedPathMetadata != null) { ImmutableList supportedVerbs = ImmutableList.CreateRange( apiMetadata.PrimaryNamespacedPathMetadata.Verbs.Select(KubeResourceApiVerb.FromKubeApiVerb) ); primaryApi = new KubeResourceApi(apiMetadata.PrimaryNamespacedPathMetadata.Path, IsNamespaced: true, supportedVerbs); } primaryApi ??= primaryNamespacedApi; if (primaryApi == null) throw new KubeClientException($"Invalid API metadata for resource type '{resourceType.ToResourceTypeName()}' (resource API metadata must contain at least one of namespaced or global primary path)."); ImmutableList otherApis = ImmutableList.CreateRange( apiMetadata.PathMetadata .Where(pathMetadata => { if (ReferenceEquals(pathMetadata, apiMetadata.PrimaryPathMetadata)) return false; if (ReferenceEquals(pathMetadata, apiMetadata.PrimaryNamespacedPathMetadata)) return false; return true; }) .Select(pathMetadata => { ImmutableList supportedVerbs = ImmutableList.CreateRange( pathMetadata.Verbs.Select(KubeResourceApiVerb.FromKubeApiVerb) ); return new KubeResourceApi(pathMetadata.Path, pathMetadata.IsNamespaced, supportedVerbs); }) ); return new KubeResourceApis(primaryApi, otherApis); } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/KubeClient.Extensions.CustomResources.Schema.csproj ================================================  net7.0;net8.0;net9.0;net10.0 enable Custom Resource Definition (CRD) schema-validation support for KubeClient ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/Models.cs ================================================ using KubeClient.Extensions.CustomResources.Schema.Utilities; using KubeClient.Models; using Newtonsoft.Json.Linq; using System; using System.Collections.Immutable; using System.Net.Http; namespace KubeClient.Extensions.CustomResources.Schema { /// /// Metadata that identifies a Kubernetes resource type. /// /// /// The resource"s API group ("group"). /// /// /// The resource"s API version ("apiVersion"). /// /// /// The resource"s type name (i.e. "kind"). /// public record class KubeResourceType(string? Group, string Version, string ResourceKind) { /// /// Convert the to a resource type name (e.g. v1/Pod). /// /// /// The resource type name. /// public string ToResourceTypeName() { if (!String.IsNullOrWhiteSpace(Group)) return $"{Group}/{Version}/{ResourceKind}"; return $"{Version}/{ResourceKind}"; } /// /// Convert the to a resource type version suffix (e.g. V1Beta1). /// /// /// The resource type version suffix. /// public string ToVersionSuffix() => NameWrangler.CapitalizeName(Version); } /// /// Schema for one or more Kubernetes resource types. /// /// /// Schemas for resource types, keyed by . /// /// /// Schemas for data types, keyed by name. /// public record class KubeSchema(ImmutableDictionary ResourceTypes, ImmutableDictionary DataTypes); /// /// A resource model in a Kubernetes API schema. /// /// /// A representing the model's "group/version/kind" in the Kubernetes API. /// /// /// Summary documentation for the data type (if available). /// /// /// Schema for the model's properties. /// /// /// Metadata for the resource's APIs. /// public record class KubeModel(KubeResourceType ResourceType, string? Summary, ImmutableDictionary Properties, KubeResourceApis ResourceApis) { /// /// The namne of the CLR type used to represent the model. /// public string ClrTypeName { get; } = ResourceType.ResourceKind + NameWrangler.CapitalizeName(ResourceType.Version); }; /// /// A complex data-type in a Kubernetes API schema. /// /// /// The model's name (except for shared complex types, this is generated from the containing and the property path where the complex type is located). /// /// /// Summary documentation for the complex type (if available). /// /// /// Schema for the model's properties. /// public record class KubeComplexType(string Name, string? Summary, ImmutableDictionary Properties) { /// /// The name of the CLR type used to represent the complex type. /// public string ClrTypeName => Name; }; /// /// A property of a Kubernetes resource-type model. /// /// /// The property name (sanitised). /// /// /// The property description (i.e. summary documentation). /// /// /// The property data-type. /// /// /// The property's name when serialised. /// /// /// Is the property optional? /// /// /// Does the property support patch-merge? /// /// /// If the property supports patch-merge, the key (i.e. fields) used to merge changes. /// /// /// If the property supports patch-merge, does it support the "retainKeys" strategy? /// public record class KubeModelProperty(string Name, string? Summary, KubeDataType DataType, string SerializedName, bool IsOptional, bool IsMerge, string? MergeKey, bool IsRetainKeys); /// /// The base class for data types in a Kubernetes API schema. /// /// /// The name of the data type (sanitised). /// /// /// Summary documentation for the data type (if available). /// public record class KubeDataType(string Name, string? Summary) { /// /// Is the data-type an intrinsic data type (such as number or string)? /// public virtual bool IsIntrinsic => false; /// /// Does the data-type represent a collection data type (such as an array or dictionary)? /// public virtual bool IsCollection => false; /// /// Get the name of the CLR that is used to represent the data type. /// /// /// Require that the CLR is nullable? /// public virtual string GetClrTypeName(bool isNullable = false) => GetCtsTypeName(Name); /// /// Get the Common Type System (CTS) type name corresponding to a Swagger / OpenAPI type name. /// /// /// The Swagger / OpenAPI type name (e.g. "string", "int", "boolean"). /// /// /// The corresponding CTS type name. /// protected static string GetCtsTypeName(string openApiTypeName) { if (String.IsNullOrWhiteSpace(openApiTypeName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(openApiTypeName)}.", nameof(openApiTypeName)); return openApiTypeName switch { "integer" => "int", "boolean" => "bool", _ => openApiTypeName, }; } }; /// /// An intrinsic data type in the Kubernetes API. /// /// /// The simplified (C#) CTS type name of the data type. /// public record class KubeIntrinsicDataType(string Name) : KubeDataType(Name, Summary: null) { /// /// Is the data-type an intrinsic data type (such as number or string)? /// public override bool IsIntrinsic => false; /// /// Does the data-type represent a collection data type (such as an array or dictionary)? /// public override bool IsCollection => false; /// /// Get the name of the CLR that is used to represent the data type. /// /// /// Require that the CLR is nullable? /// public override string GetClrTypeName(bool isNullable = false) { string clrTypeName = base.GetClrTypeName(isNullable); if (isNullable && SchemaConstants.ValueTypeNames.Contains(clrTypeName)) clrTypeName += "?"; return clrTypeName; } }; /// /// A model (i.e. resource) data type in the Kubernetes API. /// /// /// A that describes the complex data-type. /// public record class KubeModelDataType(KubeModel Model) : KubeDataType(Model.ClrTypeName, Summary: Model.Summary) { /// /// Is the data-type an intrinsic data type (such as number or string)? /// public override bool IsIntrinsic => false; /// /// Does the data-type represent a collection data type (such as an array or dictionary)? /// public override bool IsCollection => false; /// /// Get the name of the CLR that is used to represent the data type. /// /// /// Require that the CLR is nullable? /// public override string GetClrTypeName(bool isNullable = false) { string clrTypeName = base.GetClrTypeName(isNullable); if (isNullable && SchemaConstants.ValueTypeNames.Contains(clrTypeName)) clrTypeName += "?"; return clrTypeName; } }; /// /// A complex type (i.e. complex) data type in the Kubernetes API. /// /// /// A that describes the complex data-type. /// public record class KubeComplexDataType(KubeComplexType ComplexType) : KubeDataType(ComplexType.ClrTypeName, Summary: ComplexType.Summary) { /// /// Is the data-type an intrinsic data type (such as number or string)? /// public override bool IsIntrinsic => false; /// /// Does the data-type represent a collection data type (such as an array or dictionary)? /// public override bool IsCollection => false; /// /// Get the name of the CLR that is used to represent the data type. /// /// /// Require that the CLR is nullable? /// public override string GetClrTypeName(bool isNullable = false) { string clrTypeName = base.GetClrTypeName(isNullable); if (isNullable && SchemaConstants.ValueTypeNames.Contains(clrTypeName)) clrTypeName += "?"; return clrTypeName; } }; /// /// A JSON object datatype (with dynamic schema) in the Kubernetes API. /// public record class KubeDynamicObjectDataType() : KubeDataType(Name: "JObject", Summary: "A JSON object with dynamic schema.") { /// /// A singleton instance of . /// public static readonly KubeDynamicObjectDataType Instance = new KubeDynamicObjectDataType(); /// /// Get the name of the CLR that is used to represent the data type. /// /// /// Require that the CLR is nullable? /// public override string GetClrTypeName(bool isNullable = false) { if (isNullable) return $"{nameof(JObject)}?"; return nameof(JObject); } } /// /// An array data type in the Kubernetes API. /// /// /// A representing the type of element contained in the array. /// public record class KubeArrayDataType(KubeDataType ElementType) : KubeDataType(Name: $"{ElementType.Name}List", Summary: null) { /// /// Does the data-type represent a collection data type (such as an array or dictionary)? /// public override bool IsCollection => true; /// /// Get the name of the CLR that is used to represent the data type. /// /// /// Require that the CLR is nullable? /// public override string GetClrTypeName(bool isNullable = false) { string elementTypeName = GetCtsTypeName( ElementType.GetClrTypeName( isNullable: false // List would be odious to deal with. ) ); return $"List<{elementTypeName}>"; // Whereas List is, itself, always nullable. } }; /// /// An dictionary data type in the Kubernetes API. /// /// /// A representing the type of element contained in the dictionary. /// /// /// We assume all dictionary types use strings as keys. /// public record class KubeDictionaryDataType(KubeDataType ElementType) : KubeDataType(Name: $"{ElementType.Name}Dictionary", Summary: null) { /// /// Does the data-type represent a collection data type (such as an array or dictionary)? /// public override bool IsCollection => true; /// /// Get the name of the CLR that is used to represent the data type. /// /// /// Require that the CLR is nullable? /// public override string GetClrTypeName(bool isNullable = false) { string elementTypeName = GetCtsTypeName( ElementType.GetClrTypeName( isNullable: false // Dictionary would be odious to deal with. ) ); return $"Dictionary"; // Whereas Dictionary is, itself, always nullable. } }; /// /// API metadata for a Kubernetes resource type. /// /// /// Metadata for the resource type's primary API. /// /// /// Metadata for the resource type's other APIs (if any). /// public record class KubeResourceApis(KubeResourceApi PrimaryApi, ImmutableList OtherApis); /// /// Metadata for a Kubernetes resource API. /// /// /// The absolute path (or path template) to the API end-point. /// /// /// Is the API namespaced? /// /// /// Metadata for verbs supported by the API. /// public record class KubeResourceApi(string Path, bool IsNamespaced, ImmutableList SupportedVerbs); /// /// Metadata for a well-known action that can be performed by a Kubernetes resource API. /// /// /// The name of the verb. /// /// /// A that identifies the well-known action (if any) that the verb represents. /// /// /// The HTTP method (e.g. GET/PUT/POST) that the verb represents. /// public record class KubeResourceApiVerb(string Name, KubeAction KubeAction, HttpMethod HttpMethod) { /// /// Kubernetes resource-API verb: get a single resource. /// public static readonly KubeResourceApiVerb Get = new KubeResourceApiVerb(nameof(Get), KubeAction.Get, HttpMethod.Get); /// /// Kubernetes resource-API verb: list resources. /// public static readonly KubeResourceApiVerb List = new KubeResourceApiVerb(nameof(List), KubeAction.List, HttpMethod.Get); /// /// Kubernetes resource-API verb: create a resource. /// public static readonly KubeResourceApiVerb Create = new KubeResourceApiVerb(nameof(Create), KubeAction.Create, HttpMethod.Post); /// /// Kubernetes resource-API verb: update a resource (request includes a subset of resource fields). /// public static readonly KubeResourceApiVerb Update = new KubeResourceApiVerb(nameof(Update), KubeAction.Update, HttpMethod.Put); /// /// Kubernetes resource-API verb: patch a resource (request includes a list of patch operations to be performed server-side). /// public static readonly KubeResourceApiVerb Patch = new KubeResourceApiVerb(nameof(Patch), KubeAction.Patch, HttpMethod.Patch); /// /// Kubernetes resource-API verb: delete a single resource. /// public static readonly KubeResourceApiVerb Delete = new KubeResourceApiVerb(nameof(Delete), KubeAction.Delete, HttpMethod.Delete); /// /// Kubernetes resource-API verb: delete all matching resources. /// public static readonly KubeResourceApiVerb DeleteCollection = new KubeResourceApiVerb(nameof(DeleteCollection), KubeAction.DeleteCollection, HttpMethod.Delete); /// /// Kubernetes resource-API verb: watch a single resource for changes. /// public static readonly KubeResourceApiVerb Watch = new KubeResourceApiVerb(nameof(Watch), KubeAction.Watch, HttpMethod.Get); /// /// Kubernetes resource-API verb: watch all matching resources for changes. /// public static readonly KubeResourceApiVerb WatchList = new KubeResourceApiVerb(nameof(WatchList), KubeAction.WatchList, HttpMethod.Get); /// /// Kubernetes resource-API verb: open a WebSocket connection to a resource. /// public static readonly KubeResourceApiVerb Connect = new KubeResourceApiVerb(nameof(Connect), KubeAction.Connect, HttpMethod.Get); /// /// Kubernetes resource-API verb: open a WebSocket connection as a network proxy to a resource. /// public static readonly KubeResourceApiVerb Proxy = new KubeResourceApiVerb(nameof(Proxy), KubeAction.Proxy, HttpMethod.Get); /// /// An unknown Kubernetes resource-API verb. /// public static readonly KubeResourceApiVerb Unknown = new KubeResourceApiVerb(nameof(Unknown), KubeAction.Unknown, HttpMethod.Get); /// /// Get or create a corresponding to a well-known Kubernetes resource-API action. /// /// /// A value representing the well-known action. /// /// /// The corresponding (for well-known s, this is a singleton-per-), or if the value is not recognised. /// public static KubeResourceApiVerb FromKubeAction(KubeAction kubeAction) { return kubeAction switch { KubeAction.Get => Get, KubeAction.List => List, KubeAction.Create => Create, KubeAction.Update => Update, KubeAction.Patch => Patch, KubeAction.Delete => Delete, KubeAction.DeleteCollection => DeleteCollection, KubeAction.Watch => Watch, KubeAction.WatchList => WatchList, KubeAction.Connect => Connect, KubeAction.Proxy => Proxy, KubeAction.Unknown => Unknown, _ => Enum.IsDefined(kubeAction) ? new KubeResourceApiVerb(kubeAction.ToString(), kubeAction, HttpMethod.Get) : Unknown, }; } /// /// Get or create a corresponding to a Kubernetes API verb (usually from ). /// /// /// The resource API verb. /// /// /// The corresponding (for well-known verbs, this is a singleton-per-), or if the resource API verb is not recognised. /// public static KubeResourceApiVerb FromKubeApiVerb(string kubeApiVerb) { if (String.IsNullOrWhiteSpace(kubeApiVerb)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(kubeApiVerb)}.", nameof(kubeApiVerb)); return kubeApiVerb.ToLowerInvariant() switch { "get" => Get, "list" => List, "create" => Create, "update" => Update, "patch" => Patch, "delete" => Delete, "deletecollection" => DeleteCollection, "watch" => Watch, "watchlist" => WatchList, "connect" => Connect, "proxy" => Proxy, _ => new KubeResourceApiVerb(kubeApiVerb, KubeAction.Unknown, HttpMethod.Post) }; } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/SchemaConstants.cs ================================================ using System.Collections.Generic; using System.Collections.Immutable; namespace KubeClient.Extensions.CustomResources.Schema { /// /// Well-known Kubernetes resource-schema constants. /// static class SchemaConstants { /// /// The names of well-known value types in Kubernetes resource schemas. /// public static IReadOnlySet ValueTypeNames = ImmutableHashSet.CreateRange([ "bool", "int", "long", "double", "DateTime", ]); /// /// The names of data types to ignore when parsing Kubernetes resource schemas. /// public static IReadOnlySet IgnoreDataTypes = ImmutableHashSet.CreateRange([ "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", "io.k8s.apimachinery.pkg.apis.meta.v1.Time", "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "io.k8s.apimachinery.pkg.api.resource.Quantity", "io.k8s.apimachinery.pkg.util.intstr.IntOrString", // Present in both regular and and "extensions" groups: "io.k8s.api.extensions.v1beta1.Deployment", "io.k8s.api.extensions.v1beta1.DeploymentList", "io.k8s.api.extensions.v1beta1.DeploymentRollback", "io.k8s.api.extensions.v1beta1.NetworkPolicy", "io.k8s.api.extensions.v1beta1.NetworkPolicyList", "io.k8s.api.extensions.v1beta1.PodSecurityPolicy", "io.k8s.api.extensions.v1beta1.PodSecurityPolicyList", "io.k8s.api.extensions.v1beta1.ReplicaSet", "io.k8s.api.extensions.v1beta1.ReplicaSetList", "io.k8s.api.extensions.v1.Deployment", "io.k8s.api.extensions.v1.DeploymentList", "io.k8s.api.extensions.v1.DeploymentRollback", "io.k8s.api.extensions.v1.NetworkPolicy", "io.k8s.api.extensions.v1.NetworkPolicyList", "io.k8s.api.extensions.v1.PodSecurityPolicy", "io.k8s.api.extensions.v1.PodSecurityPolicyList", "io.k8s.api.extensions.v1.ReplicaSet", "io.k8s.api.extensions.v1.ReplicaSetList", "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision", "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale", "io.k8s.kubernetes.pkg.apis.apps.v1.ControllerRevision", "io.k8s.kubernetes.pkg.apis.apps.v1.ControllerRevisionList", "io.k8s.kubernetes.pkg.apis.extensions.v1.DaemonSet", "io.k8s.kubernetes.pkg.apis.extensions.v1.DaemonSetList", "io.k8s.kubernetes.pkg.apis.extensions.v1.Deployment", "io.k8s.kubernetes.pkg.apis.extensions.v1.DeploymentList", "io.k8s.kubernetes.pkg.apis.extensions.v1.DeploymentRollback", "io.k8s.kubernetes.pkg.apis.extensions.v1.NetworkPolicy", "io.k8s.kubernetes.pkg.apis.extensions.v1.NetworkPolicyList", "io.k8s.kubernetes.pkg.apis.extensions.v1.PodSecurityPolicy", "io.k8s.kubernetes.pkg.apis.extensions.v1.PodSecurityPolicyList", "io.k8s.kubernetes.pkg.apis.extensions.v1.ReplicaSet", "io.k8s.kubernetes.pkg.apis.extensions.v1.ReplicaSetList", "io.k8s.kubernetes.pkg.apis.extensions.v1.Scale", // Special case for EventV1 "io.k8s.api.events.v1.Event", "io.k8s.api.events.v1.EventList", // Hand-coded: "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource", "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResourceList", ]); } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/SchemaGeneratorV1.cs ================================================ using KubeClient.Models; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Reflection; namespace KubeClient.Extensions.CustomResources.Schema { /// /// Generator for v1 Custom Resource Definition (CRD) validation schemas. /// public static class SchemaGeneratorV1 { /// /// The CLR type representing . /// static readonly Type CustomResourceV1Type = typeof(KubeCustomResourceV1); /// /// Generate the CRD validation schema for a specification model type. /// /// /// The CLR type representing the model. /// /// /// The generated . /// public static JSONSchemaPropsV1 GenerateSchema() where TModel : KubeCustomResourceV1 { return GenerateSchema(typeof(TModel)); } /// /// Generate the CRD validation schema for a model type. /// /// /// The CLR type representing the model. /// /// /// The generated . /// public static JSONSchemaPropsV1 GenerateSchema(Type modelType) { if (modelType == null) throw new ArgumentNullException(nameof(modelType)); if (!CustomResourceV1Type.IsAssignableFrom(modelType)) throw new ArgumentException($"Cannot generate JSON schema for model type '{modelType.FullName}' because it does not derive from '{CustomResourceV1Type.FullName}'."); TypeInfo modelTypeInfo = modelType.GetTypeInfo(); if (modelTypeInfo.IsEnum) return GenerateEnumSchema(modelType); TypeCode modelTypeCode = Type.GetTypeCode(modelType); switch (modelTypeCode) { case TypeCode.String: { return new JSONSchemaPropsV1 { Type = "string" }; } case TypeCode.Boolean: { return new JSONSchemaPropsV1 { Type = "boolean" }; } case TypeCode.Int32: { return new JSONSchemaPropsV1 { Type = "integer", Format = "int32" }; } case TypeCode.Int64: { return new JSONSchemaPropsV1 { Type = "integer", Format = "int64" }; } case TypeCode.Single: { return new JSONSchemaPropsV1 { Type = "number", Format = "float" }; } case TypeCode.Double: { return new JSONSchemaPropsV1 { Type = "float", Format = "double" }; } case TypeCode.DateTime: { return new JSONSchemaPropsV1 { Type = "string", Format = "date-time" }; } case TypeCode.Object: { if (modelType.IsArray) { if (Type.GetTypeCode(modelType.GetElementType()) == TypeCode.Byte) { return new JSONSchemaPropsV1 { Type = "string", Format = "byte" }; } return GenerateArraySchema(modelType); } if (modelType == typeof(Guid)) { return new JSONSchemaPropsV1 { Type = "string", Format = "uuid" }; } return GenerateObjectSchema(modelType); } default: { throw new NotSupportedException( $"Cannot generate schema for unsupported data-type '{modelType.FullName}'." ); } } } /// /// Generate the CRD validation schema for an data-type. /// /// /// A representing the data-type. /// /// /// The generated . /// static JSONSchemaPropsV1 GenerateEnumSchema(Type enumType) { if (enumType == null) throw new ArgumentNullException(nameof(enumType)); JSONSchemaPropsV1 schema = new JSONSchemaPropsV1 { Type = "string", Description = enumType.Name }; schema.Enum.AddRange( Enum.GetNames(enumType) ); return schema; } /// /// Generate the CRD validation schema for an data-type. /// /// /// A representing the array data-type. /// /// /// The generated . /// static JSONSchemaPropsV1 GenerateArraySchema(Type arrayType) { if (arrayType == null) throw new ArgumentNullException(nameof(arrayType)); return new JSONSchemaPropsV1 { Type = "array", Items = GenerateSchema( arrayType.GetElementType() ?? throw new InvalidOperationException($"Cannot determine element type for CLR type '{arrayType.FullName}'.") ) }; } /// /// Generate the CRD validation schema for a complex data-type. /// /// /// A representing the complex (object) data-type. /// /// /// The generated . /// static JSONSchemaPropsV1 GenerateObjectSchema(Type objectType) { if (objectType == null) throw new ArgumentNullException(nameof(objectType)); var schemaProps = new JSONSchemaPropsV1 { Type = "object", Description = objectType.Name, }; foreach (PropertyInfo property in objectType.GetProperties(BindingFlags.Instance | BindingFlags.Public)) { if (!(property.CanRead && property.CanWrite)) continue; // Ignore non-serialised properties. if (property.GetCustomAttribute() != null) continue; // We only want properties declared on KubeCustomResourceV1 (or classes derived from it). if (!typeof(KubeCustomResourceV1).IsAssignableFrom(property.DeclaringType)) continue; schemaProps.Properties[property.Name] = GenerateSchema(property.PropertyType); } schemaProps.Required.AddRange( GetRequiredPropertyNames(objectType) ); return schemaProps; } /// /// Get the names of required properties on the specified complex type. /// /// /// A representing the complex (object) data-type. /// /// /// A sequence of property names. /// static IEnumerable GetRequiredPropertyNames(Type objectType) { if (objectType == null) throw new ArgumentNullException(nameof(objectType)); foreach (PropertyInfo property in objectType.GetProperties(BindingFlags.Instance | BindingFlags.Public)) { if (property.PropertyType.IsValueType && Nullable.GetUnderlyingType(property.PropertyType) == null) yield return property.Name; // Value types (unless nullable) are required. else if (property.GetCustomAttribute() != null) yield return property.Name; // Marked with [JsonRequired] else if (property.GetCustomAttribute() != null) yield return property.Name; // Marked with [Required] } } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/SchemaGeneratorV1Beta1.cs ================================================ using KubeClient.Models; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Reflection; namespace KubeClient.Extensions.CustomResources.Schema { /// /// Generator for v1beta1 Custom Resource Definition (CRD) validation schemas. /// /// /// Note: this type is deprecated and will be removed in a future version of dotnet-kube-client (use , instead). /// public static class SchemaGeneratorV1Beta1 { /// /// The CLR type representing . /// static readonly Type CustomResourceV1Type = typeof(KubeCustomResourceV1Beta1); /// /// Generate the CRD validation schema for a specification model type. /// /// /// The CLR type representing the model. /// /// /// The generated . /// public static JSONSchemaPropsV1Beta1 GenerateSchema() where TModel : KubeCustomResourceV1Beta1 { return GenerateSchema(typeof(TModel)); } /// /// Generate the CRD validation schema for a model type. /// /// /// The CLR type representing the model. /// /// /// The generated . /// public static JSONSchemaPropsV1Beta1 GenerateSchema(Type modelType) { if (modelType == null) throw new ArgumentNullException(nameof(modelType)); if (!CustomResourceV1Type.IsAssignableFrom(modelType)) throw new ArgumentException($"Cannot generate JSON schema for model type '{modelType.FullName}' because it does not derive from '{CustomResourceV1Type.FullName}'."); TypeInfo modelTypeInfo = modelType.GetTypeInfo(); if (modelTypeInfo.IsEnum) return GenerateEnumSchema(modelType); TypeCode modelTypeCode = Type.GetTypeCode(modelType); switch (modelTypeCode) { case TypeCode.String: { return new JSONSchemaPropsV1Beta1 { Type = "string" }; } case TypeCode.Boolean: { return new JSONSchemaPropsV1Beta1 { Type = "boolean" }; } case TypeCode.Int32: { return new JSONSchemaPropsV1Beta1 { Type = "integer", Format = "int32" }; } case TypeCode.Int64: { return new JSONSchemaPropsV1Beta1 { Type = "integer", Format = "int64" }; } case TypeCode.Single: { return new JSONSchemaPropsV1Beta1 { Type = "number", Format = "float" }; } case TypeCode.Double: { return new JSONSchemaPropsV1Beta1 { Type = "float", Format = "double" }; } case TypeCode.DateTime: { return new JSONSchemaPropsV1Beta1 { Type = "string", Format = "date-time" }; } case TypeCode.Object: { if (modelType.IsArray) { if (Type.GetTypeCode(modelType.GetElementType()) == TypeCode.Byte) { return new JSONSchemaPropsV1Beta1 { Type = "string", Format = "byte" }; } return GenerateArraySchema(modelType); } if (modelType == typeof(Guid)) { return new JSONSchemaPropsV1Beta1 { Type = "string", Format = "uuid" }; } return GenerateObjectSchema(modelType); } default: { throw new NotSupportedException( $"Cannot generate schema for unsupported data-type '{modelType.FullName}'." ); } } } /// /// Generate the CRD validation schema for an data-type. /// /// /// A representing the data-type. /// /// /// The generated . /// static JSONSchemaPropsV1Beta1 GenerateEnumSchema(Type enumType) { if (enumType == null) throw new ArgumentNullException(nameof(enumType)); JSONSchemaPropsV1Beta1 schema = new JSONSchemaPropsV1Beta1 { Type = "string", Description = enumType.Name }; schema.Enum.AddRange( Enum.GetNames(enumType).Select( memberName => new JSONV1Beta1 { Raw = memberName } ) ); return schema; } /// /// Generate the CRD validation schema for an data-type. /// /// /// A representing the array data-type. /// /// /// The generated . /// static JSONSchemaPropsV1Beta1 GenerateArraySchema(Type arrayType) { if (arrayType == null) throw new ArgumentNullException(nameof(arrayType)); return new JSONSchemaPropsV1Beta1 { Type = "array", Items = GenerateSchema( arrayType.GetElementType() ?? throw new InvalidOperationException($"Cannot determine element type for CLR type '{arrayType.FullName}'.") ) }; } /// /// Generate the CRD validation schema for a complex data-type. /// /// /// A representing the complex (object) data-type. /// /// /// The generated . /// static JSONSchemaPropsV1Beta1 GenerateObjectSchema(Type objectType) { if (objectType == null) throw new ArgumentNullException(nameof(objectType)); var schemaProps = new JSONSchemaPropsV1Beta1 { Type = "object", Description = objectType.Name, }; foreach (PropertyInfo property in objectType.GetProperties(BindingFlags.Instance | BindingFlags.Public)) { if (!(property.CanRead && property.CanWrite)) continue; // Ignore non-serialised properties. if (property.GetCustomAttribute() != null) continue; // We only want properties declared on KubeCustomResourceV1 (or classes derived from it). if (!typeof(KubeCustomResourceV1Beta1).IsAssignableFrom(property.DeclaringType)) continue; schemaProps.Properties[property.Name] = GenerateSchema(property.PropertyType); } schemaProps.Required.AddRange( GetRequiredPropertyNames(objectType) ); return schemaProps; } /// /// Get the names of required properties on the specified complex type. /// /// /// A representing the complex (object) data-type. /// /// /// A sequence of property names. /// static IEnumerable GetRequiredPropertyNames(Type objectType) { if (objectType == null) throw new ArgumentNullException(nameof(objectType)); foreach (PropertyInfo property in objectType.GetProperties(BindingFlags.Instance | BindingFlags.Public)) { if (property.PropertyType.IsValueType && Nullable.GetUnderlyingType(property.PropertyType) == null) yield return property.Name; // Value types (unless nullable) are required. else if (property.GetCustomAttribute() != null) yield return property.Name; // Marked with [JsonRequired] else if (property.GetCustomAttribute() != null) yield return property.Name; // Marked with [Required] } } } } ================================================ FILE: src/KubeClient.Extensions.CustomResources.Schema/Utilities/NameWrangler.cs ================================================ using System; using System.Globalization; using System.Text.RegularExpressions; namespace KubeClient.Extensions.CustomResources.Schema.Utilities { /// /// Helper methods for working with names/identifiers in Kubernetes resource schemas. /// static class NameWrangler { /// /// A regular expression used to capitalise names/identifiers. /// /// /// Used to split on either: /// /// 1 or more upper-case letters, NOT followed by 0 or more lower-case letters. /// 0 or 1 upper-case letters, followed by 1 or more lower-case letters. /// 1 or more digits. /// /// static readonly Regex Capitalizer = new Regex(@"([A-Z]+(?![a-z])|[A-Z]?[a-z]+|\d+)"); /// /// A regular expression used to sanitise names/identifiers. /// static readonly Regex Sanitizer = new Regex(@"([\-\$0-9])"); /// /// representing text behaviour for the invariant culture (). /// static readonly TextInfo InvariantText = CultureInfo.InvariantCulture.TextInfo; /// /// Capitalise the specified name. /// /// /// The name to capitalise. /// /// /// The capitalised name. /// /// /// This function is number-aware: /// /// "v1" becomes "V1" /// "v1beta1" becomes "V1Beta1" /// "v12beta34" becomes "V12Beta34" /// "v12etaBetaPi34" becomes "V12EtaBetaPi34" /// "v12EtaBetaPi34" becomes "V12EtaBetaPi34" /// "v12etabetaPi34" becomes "V12EtabetaPi34" /// /// public static string CapitalizeName(string name) { if (name == null) throw new ArgumentNullException(nameof(name)); if (String.IsNullOrWhiteSpace(name)) return name; string[] nameComponents = Capitalizer.Split(name); for (int componentIndex = 0; componentIndex < nameComponents.Length; componentIndex++) { string nameComponent = nameComponents[componentIndex]; nameComponents[componentIndex] = InvariantText.ToTitleCase(nameComponent); } return String.Join(String.Empty, nameComponents); } public static string SanitizeName(string name) { if (name == null) throw new ArgumentNullException(nameof(name)); return Sanitizer.Replace(name, String.Empty); } } } ================================================ FILE: src/KubeClient.Extensions.DataProtection/DataProtectionExtensions.cs ================================================ using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.DataProtection.KeyManagement; using Microsoft.Extensions.DependencyInjection; using System; namespace KubeClient { using Extensions.DataProtection; /// /// extension methods to persist Keys in a Kubernetes Secret. /// public static class DataProtectionExtensions { /// /// Add or Create a Kubernetes Secret as a Repository. /// /// /// The to Configure. /// /// /// for the used to communicate with the Kubernetes API. /// /// /// The name of the target Secret. /// /// /// The namespace of the target Secret. /// /// /// The configured . /// public static IDataProtectionBuilder PersistKeysToKubeSecret(this IDataProtectionBuilder builder, KubeClientOptions clientOptions, string secretName, string kubeNamespace = null) { if (builder == null) throw new ArgumentNullException(nameof(builder)); if (clientOptions == null) throw new ArgumentNullException(nameof(clientOptions)); if (String.IsNullOrWhiteSpace(secretName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(secretName)}.", nameof(secretName)); builder.Services.Configure(options => { KubeApiClient client = KubeApiClient.Create(clientOptions); // Persist secret data in the target K8s secret. options.XmlRepository = new KubeSecretXmlRepository(client, secretName, kubeNamespace ?? client.DefaultNamespace); }); return builder; } /// /// Add or Create a Kubernetes Secret as a Repository. /// /// /// The to Configure. /// /// /// The used to communicate with the Kubernetes API. /// /// /// The name of the target Secret. /// /// /// The namespace of the target Secret. /// /// /// The configured . /// public static IDataProtectionBuilder PersistKeysToKubeSecret(this IDataProtectionBuilder builder, IKubeApiClient client, string secretName, string kubeNamespace = null) { if (builder == null) throw new ArgumentNullException(nameof(builder)); if (client == null) throw new ArgumentNullException(nameof(client)); if (String.IsNullOrWhiteSpace(secretName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(secretName)}.", nameof(secretName)); builder.Services.Configure(options => { // Persist secret data in the target K8s secret. options.XmlRepository = new KubeSecretXmlRepository(client, secretName, kubeNamespace ?? client.DefaultNamespace); }); return builder; } } } ================================================ FILE: src/KubeClient.Extensions.DataProtection/KubeClient.Extensions.DataProtection.csproj ================================================  net7.0;net8.0;net9.0;net10.0;netstandard2.1 KubeClient extensions for ASP.NET Core data-protection ================================================ FILE: src/KubeClient.Extensions.DataProtection/KubeSecretXmlRepository.cs ================================================ using Microsoft.AspNetCore.DataProtection.Repositories; using Microsoft.Extensions.Logging; using Nito.AsyncEx; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; namespace KubeClient.Extensions.DataProtection { using Models; /// /// An implementation that uses a Kubernetes Secret to store data-protection keys. /// public sealed class KubeSecretXmlRepository : IXmlRepository, IDisposable { /// /// The default "friendly" name used for top-level elements in the repository when a friendly name is not supplied. /// public static readonly string DefaultElementFriendlyName = "KeyElement"; /// /// An async-friendly lock used to synchronise access to repository state. /// readonly AsyncLock _stateLock = new AsyncLock(); /// /// used to communicate with the Kubernetes API. /// readonly IKubeApiClient _client; /// /// The name of the target Secret. /// readonly string _secretName; /// /// The namespace of the target Secret. /// readonly string _kubeNamespace; /// /// A representing the Secret used to store the XML keys. /// SecretV1 _keyManagementSecret; /// /// An representing the subscription to change notifications for the key-management secret. /// IDisposable _watchSubscription; /// /// An XML repository backed by KubeClient. /// /// /// An used to communicate with the Kubernetes API. /// /// /// The name of the target Secret. /// /// /// The namespace of the target Secret. /// public KubeSecretXmlRepository(IKubeApiClient client, string secretName, string kubeNamespace = null) { if (client == null) throw new ArgumentNullException(nameof(client)); if (String.IsNullOrEmpty(secretName)) throw new ArgumentNullException(nameof(secretName)); _client = client; _secretName = secretName; _kubeNamespace = kubeNamespace; Log = client.LoggerFactory.CreateLogger(); // Init LoadOrCreateSecret().GetAwaiter().GetResult(); AttachWatcher(); } /// /// Dispose of resources being used by the . /// public void Dispose() { if (_watchSubscription != null) { _watchSubscription.Dispose(); _watchSubscription = null; } _client.Dispose(); } /// /// The logger for the secret repository. /// ILogger Log { get; } /// /// Get all top-level XML elements in the repository. /// /// /// A sequence of s representing the top-level elements. /// public IReadOnlyCollection GetAllElements() => GetAllElementsCore().ToArray(); /// /// Add a top-level XML element to the repository. /// /// /// An representing the element to add. /// /// /// An optional name to be associated with the XML element. /// /// /// Element friendly names must be unique per Secret. /// public void StoreElement(XElement element, string friendlyName) => StoreElementCore(element, friendlyName).GetAwaiter().GetResult(); /// /// Load or Create the Kubernetes Secret used for persistence. /// async Task LoadOrCreateSecret() { using (await _stateLock.LockAsync()) { Log.LogDebug("Attempting to load Secret {SecretName} in namespace {SecretNamespace} for persistence of data-protection keys...", _secretName, _kubeNamespace ); SecretV1 secret = await _client.SecretsV1().Get(_secretName, _kubeNamespace); if (secret == null) { Log.LogDebug("Secret {SecretName} was not found in namespace {SecretNamespace} for persistence of data-protection keys; creating...", _secretName, _kubeNamespace ); secret = await _client.SecretsV1().Create(new SecretV1 { Metadata = new ObjectMetaV1 { Name = _secretName, Namespace = _kubeNamespace } }); Log.LogDebug("Successfully created Secret {SecretName} in namespace {SecretNamespace} for persistence of data-protection keys.", secret.Metadata.Name, secret.Metadata.Namespace ); } else { Log.LogDebug("Successfully loaded Secret {SecretName} in namespace {SecretNamespace} for persistence of data-protection keys.", secret.Metadata.Name, secret.Metadata.Namespace ); } _keyManagementSecret = secret; } } /// /// Attach the Watcher to the Secret for Changes /// void AttachWatcher() { _watchSubscription = _client.SecretsV1() .Watch(_secretName, _kubeNamespace) .Subscribe(OnKeyManagementSecretChanged); } /// /// Called by the watch subscription when the key-management secret has changed. /// /// /// An containing information about the changed Secret. /// /// /// If the Secret is Modified, the internal properties will be reset. /// void OnKeyManagementSecretChanged(IResourceEventV1 secretEvent) { if (secretEvent == null) throw new ArgumentNullException(nameof(secretEvent)); if (secretEvent.Resource == null) throw new ArgumentNullException(nameof(secretEvent.Resource)); switch (secretEvent.EventType) { case ResourceEventType.Added: case ResourceEventType.Modified: { // Attach the changed Secret using (_stateLock.Lock()) { _keyManagementSecret = secretEvent.Resource; } break; } case ResourceEventType.Deleted: { // TODO: How do we handle the underlying Secret being deleted? Log.LogWarning("Secret {SecretName} in namespace {SecretNamespace} (which is used for persistence of data-protection key material) has been deleted.", _secretName, _kubeNamespace); break; } } } /// /// Add a top-level XML element to the repository. /// /// /// An representing the element to add. /// /// /// An optional name to be associated with the XML element. /// /// /// A representing the asynchronous operation. /// /// /// Element friendly names must be unique per Secret. /// async Task StoreElementCore(XElement element, string friendlyName) { if (element == null) throw new ArgumentNullException(nameof(element)); if (String.IsNullOrWhiteSpace(friendlyName)) friendlyName = DefaultElementFriendlyName; // Convert to XML String string elementXml = element.ToString(SaveOptions.DisableFormatting); // Convert to Base64 String string encodedElementXml = Convert.ToBase64String( Encoding.UTF8.GetBytes(elementXml) ); // Add a file extension to simplify mounting of Secret as a volume (some consumers may want to do this). const string xmlExtension = ".xml"; if (!String.Equals(Path.GetExtension(friendlyName), xmlExtension, StringComparison.OrdinalIgnoreCase)) friendlyName += xmlExtension; using (await _stateLock.LockAsync()) { _keyManagementSecret.Data[friendlyName] = encodedElementXml; await _client.SecretsV1().Update(_secretName, kubeNamespace: _kubeNamespace, patchAction: patch => { patch.Replace(secret => secret.Data, _keyManagementSecret.Data); }); } } /// /// Get all top-level elements from the repository /// /// A sequence of s. IEnumerable GetAllElementsCore() { // Use a snapshot of the underlying secret data so we don't tie up the state lock while consumers are enumerating elements. (string elementFriendlyName, string encodedElementXml)[] elements; using (_stateLock.Lock()) { elements = _keyManagementSecret.Data .Select( item => (elementFriendlyName: item.Key, encodedElementXml: item.Value) ) .ToArray(); } foreach (string elementFriendlyName in _keyManagementSecret.Data.Keys) { string encodedElementXml = _keyManagementSecret.Data[elementFriendlyName]; // Convert from Base64 to XMLString string elementXml; try { elementXml = Encoding.UTF8.GetString( Convert.FromBase64String(encodedElementXml) ); } catch (ArgumentException cannotDecodeUtf8String) { Log.LogError(cannotDecodeUtf8String, "Unable to decode UTF8-encoded data for key XML {KeyName} in secret {SecretName} (namespace {SecretNamespace}); this key will be ignored.", elementFriendlyName, _keyManagementSecret.Metadata.Name, _keyManagementSecret.Metadata.Namespace ); continue; } catch (FormatException cannotDecodeBase64String) { Log.LogError(cannotDecodeBase64String, "Unable to decode Base64-encoded data for key XML {KeyName} in secret {SecretName} (namespace {SecretNamespace}); this key will be ignored.", elementFriendlyName, _keyManagementSecret.Metadata.Name, _keyManagementSecret.Metadata.Namespace ); continue; } catch (Exception unexpectedError) { Log.LogError(unexpectedError, "An unexpected error occurred while decoding data for key XML {KeyName} in secret {SecretName} (namespace {SecretNamespace}); this key will be ignored.", elementFriendlyName, _keyManagementSecret.Metadata.Name, _keyManagementSecret.Metadata.Namespace ); continue; } XElement element; try { element = XElement.Parse(elementXml); } catch (XmlException invalidKeyXml) { Log.LogError(invalidKeyXml, "Unable to parse XML for key {KeyName} in secret {SecretName} (namespace {SecretNamespace}); this key will be ignored.", elementFriendlyName, _keyManagementSecret.Metadata.Name, _keyManagementSecret.Metadata.Namespace ); continue; } yield return element; } } } } ================================================ FILE: src/KubeClient.Extensions.DependencyInjection/ClientRegistrationExtensions.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System; using System.Linq; using Microsoft.Extensions.Configuration; namespace KubeClient { /// /// Extension methods for registering as a component. /// public static class ClientRegistrationExtensions { /// /// Add a to the service collection. /// /// /// The service collection to configure. /// /// /// Configure the client to use the service account for the current Pod? /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClient(this IServiceCollection services, bool usePodServiceAccount = false) { if (services == null) throw new ArgumentNullException(nameof(services)); if (usePodServiceAccount) { services.AddScoped(ResolveWithPodServiceAccount); services.AddScopedPassThrough(); } else { services.AddScoped(ResolveWithDefaultOptions); services.AddScopedPassThrough(); } return services; } /// /// Add a to the service collection. /// /// /// The service collection to configure. /// /// /// containing the client configuration to use. /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClient(this IServiceCollection services, KubeClientOptions options) { if (services == null) throw new ArgumentNullException(nameof(services)); if (options == null) throw new ArgumentNullException(nameof(options)); options.EnsureValid(); services.AddScoped( BuildResolverWithOptions(options) ); services.AddScopedPassThrough(); return services; } /// /// Add a to the service collection. Automatically use a pod service account if no API endpoint is configured. /// /// /// The service collection to configure. /// /// /// Configuration to be deserialized as . /// public static IServiceCollection AddKubeClient(this IServiceCollection services, IConfiguration configuration) { var options = new KubeClientOptions(); configuration.Bind(options); if (options.ApiEndPoint == null) { options = KubeClientOptions.FromPodServiceAccount(); configuration.Bind(options); } services.AddKubeClient(options); return services; } /// /// Add a named to the service collection. /// /// /// The service collection to configure. /// /// /// A name used to resolve the Kubernetes client. /// /// /// A delegate that performs required configuration of the to use. /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClient(this IServiceCollection services, string name, Action configure) { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (configure == null) throw new ArgumentNullException(nameof(configure)); services.AddKubeClientOptions(name, configure); services.AddNamedKubeClients(); return services; } /// /// Add support for named Kubernetes client instances. /// /// /// The service collection to configure. /// /// /// The configured service collection. /// public static IServiceCollection AddNamedKubeClients(this IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); if (!services.Any(service => service.ServiceType == typeof(NamedKubeClients))) services.AddScoped(); return services; } /// /// When running inside Kubernetes, resolve a using the pod-level service account (e.g. access token from mounted Secret). /// /// /// The service provider used to resolve the . /// /// /// The . /// static KubeApiClient ResolveWithPodServiceAccount(IServiceProvider serviceProvider) { if (serviceProvider == null) throw new ArgumentNullException(nameof(serviceProvider)); return KubeApiClient.CreateFromPodServiceAccount( loggerFactory: serviceProvider.GetService() ); } /// /// Resolve a using the default registered options. /// /// /// The service provider used to resolve the . /// /// /// The . /// static KubeApiClient ResolveWithDefaultOptions(IServiceProvider serviceProvider) { if (serviceProvider == null) throw new ArgumentNullException(nameof(serviceProvider)); KubeClientOptions clientOptions = serviceProvider.GetRequiredService>().CurrentValue; if (clientOptions.IsUsingDefaultLoggerFactory()) clientOptions.LoggerFactory = serviceProvider.GetService(); return KubeApiClient.Create(clientOptions); } /// /// Build a delegate that resolves a using the specified . /// /// /// The . /// /// /// The resolver delegate. /// static Func BuildResolverWithOptions(KubeClientOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); KubeClientOptions optionsSnapshot = options.EnsureValid().Clone(); return (IServiceProvider serviceProvider) => { KubeClientOptions clientOptions = optionsSnapshot.Clone(); if (clientOptions.IsUsingDefaultLoggerFactory()) clientOptions.LoggerFactory = serviceProvider.GetService(); return KubeApiClient.Create(options); }; } /// /// Register a scoped service that resolves another service as its implementation. /// /// /// The service type. /// /// /// The implementation type to resolve when the service is resolved. /// /// /// The service collection to configure. /// /// /// The configured service collection. /// static IServiceCollection AddScopedPassThrough(this IServiceCollection services) where TService : class where TImplementation : class, TService { if (services == null) throw new ArgumentNullException(nameof(services)); return services.AddScoped( serviceProvider => serviceProvider.GetRequiredService() ); } } } ================================================ FILE: src/KubeClient.Extensions.DependencyInjection/INamedKubeClients.cs ================================================ using Microsoft.Extensions.DependencyInjection; namespace KubeClient { /// /// Represents a service for resolving named Kubernetes clients. /// public interface INamedKubeClients { /// /// Resolve the Kubernetes API client with the specified name. /// /// /// The client name. /// /// /// The resolved . /// IKubeApiClient Get(string name); } } ================================================ FILE: src/KubeClient.Extensions.DependencyInjection/KubeClient.Extensions.DependencyInjection.csproj ================================================ net7.0;net8.0;net9.0;net10.0;netstandard2.1 enable Dependency-injection support for KubeClient ================================================ FILE: src/KubeClient.Extensions.DependencyInjection/KubeClientOptionsRegistrationExtensions.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using System; using System.IO; namespace KubeClient { using Extensions.KubeConfig.Models; /// /// Extension methods for registering Kubernetes client options. /// public static class KubeClientOptionsRegistrationExtensions { /// /// Add to the service collection. /// /// /// The service collection to configure. /// /// /// A delegate that performs required configuration of the . /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClientOptions(this IServiceCollection services, Action configure) { if (services == null) throw new ArgumentNullException(nameof(services)); if (configure == null) throw new ArgumentNullException(nameof(configure)); services.Configure(options => { configure(options); options.EnsureValid(); }); return services; } /// /// Add named to the service collection. /// /// /// The service collection to configure. /// /// /// A name used to resolve the options. /// /// /// A delegate that performs required configuration of the . /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClientOptions(this IServiceCollection services, string name, Action configure) { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (configure == null) throw new ArgumentNullException(nameof(configure)); services.Configure(name, options => { configure(options); options.EnsureValid(); }); return services; } /// /// Add from local Kubernetes client configuration. /// /// /// The service collection to configure. /// /// /// The optional name of a specific configuration file to use (if not specified, defaults to the path returned by ). /// /// /// The optional name of a specific Kubernetes client context to use. /// /// /// The default namespace to use (if not specified, "default" is used). /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClientOptionsFromKubeConfig(this IServiceCollection services, string? kubeConfigFileName = null, string? kubeContextName = null, string defaultKubeNamespace = "default") { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(defaultKubeNamespace)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'defaultNamespace'.", nameof(defaultKubeNamespace)); FileInfo kubeConfigFile = GetKubeConfigFile(kubeConfigFileName); // IOptions services.Configure(kubeClientOptions => { K8sConfig config = K8sConfig.Load(kubeConfigFile); KubeClientOptions optionsForTargetContext = config.ToKubeClientOptions(kubeContextName, defaultKubeNamespace); optionsForTargetContext.CopyTo(kubeClientOptions); kubeClientOptions.KubeNamespace = defaultKubeNamespace; }); return services; } /// /// Add named from local Kubernetes client configuration. /// /// /// The service collection to configure. /// /// /// The name used to resolve these options. /// /// /// The optional name of a specific configuration file to use (if not specified, defaults to the path returned by ). /// /// /// The optional name of a specific Kubernetes client context to use. /// /// /// The default namespace to use (if not specified, "default" is used). /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClientOptionsFromKubeConfig(this IServiceCollection services, string name, string? kubeConfigFileName = null, string? kubeContextName = null, string defaultKubeNamespace = "default") { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); if (String.IsNullOrWhiteSpace(defaultKubeNamespace)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'defaultNamespace'.", nameof(defaultKubeNamespace)); FileInfo kubeConfigFile = GetKubeConfigFile(kubeConfigFileName); services.AddKubeClientOptions(name, kubeClientOptions => { K8sConfig config = K8sConfig.Load(kubeConfigFile); KubeClientOptions optionsForTargetContext = config.ToKubeClientOptions(kubeContextName, defaultKubeNamespace); optionsForTargetContext.CopyTo(kubeClientOptions); kubeClientOptions.KubeNamespace = defaultKubeNamespace; }); return services; } /// /// Add a named for each context in the local Kubernetes client configuration. /// /// /// The service collection to configure. /// /// /// The optional name of a specific configuration file to use (if not specified, defaults to the path returned by ). /// /// /// The default namespace to use (if not specified, "default" is used). /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClientOptionsFromKubeConfig(this IServiceCollection services, string? kubeConfigFileName = null, string defaultKubeNamespace = "default") { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(defaultKubeNamespace)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'defaultNamespace'.", nameof(defaultKubeNamespace)); FileInfo kubeConfigFile = GetKubeConfigFile(kubeConfigFileName); // List of contexts is static for application lifetime... K8sConfig config = K8sConfig.Load(kubeConfigFile); foreach (Context targetContext in config.Contexts) { services.AddKubeClientOptions(targetContext.Name, kubeClientOptions => { // ...but config for those contexts is dynamic. K8sConfig currentConfig = K8sConfig.Load(kubeConfigFile); KubeClientOptions optionsForTargetContext = currentConfig.ToKubeClientOptions(targetContext.Name, defaultKubeNamespace); optionsForTargetContext.CopyTo(kubeClientOptions); kubeClientOptions.KubeNamespace = defaultKubeNamespace; }); } return services; } /// /// Add from the pod service account. /// /// /// The service collection to configure. /// /// /// The default namespace to use (if not specified, "default" is used). /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClientOptionsFromPodServiceAccount(this IServiceCollection services, string defaultKubeNamespace = "default") { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(defaultKubeNamespace)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(defaultKubeNamespace)}.", nameof(defaultKubeNamespace)); services.AddKubeClientOptions(kubeClientOptions => { KubeClientOptions fromPodServiceAccount = KubeClientOptions.FromPodServiceAccount(); fromPodServiceAccount.CopyTo(kubeClientOptions); kubeClientOptions.KubeNamespace = defaultKubeNamespace; }); return services; } /// /// Add named from the pod service account. /// /// /// The service collection to configure. /// /// /// The name used to resolve these options. /// /// /// The default namespace to use (if not specified, "default" is used). /// /// /// The configured service collection. /// public static IServiceCollection AddKubeClientOptionsFromPodServiceAccount(this IServiceCollection services, string name, string defaultKubeNamespace = "default") { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(name)}.", nameof(name)); if (String.IsNullOrWhiteSpace(defaultKubeNamespace)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(defaultKubeNamespace)}.", nameof(defaultKubeNamespace)); services.AddKubeClientOptions(name, kubeClientOptions => { KubeClientOptions fromPodServiceAccount = KubeClientOptions.FromPodServiceAccount(); fromPodServiceAccount.CopyTo(kubeClientOptions); kubeClientOptions.KubeNamespace = defaultKubeNamespace; }); return services; } /// /// Get a representing a Kubernetes client configuration file. /// /// /// The full path to the configuration file, or null to use the default config file (via ). /// /// /// A representing the configuration file. /// static FileInfo GetKubeConfigFile(string? kubeConfigFileName) { if (String.IsNullOrWhiteSpace(kubeConfigFileName)) kubeConfigFileName = K8sConfig.Locate(); return new FileInfo(kubeConfigFileName); } } } ================================================ FILE: src/KubeClient.Extensions.DependencyInjection/NamedKubeClients.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System; namespace KubeClient { /// /// A service for resolving named Kubernetes clients. /// public class NamedKubeClients : INamedKubeClients { /// /// Create a new service. /// /// /// The underlying service provider used to resolve required services. /// public NamedKubeClients(IServiceProvider serviceProvider) { if (serviceProvider == null) throw new ArgumentNullException(nameof(serviceProvider)); ServiceProvider = serviceProvider; } /// /// The underlying service provider used to resolve required services. /// public IServiceProvider ServiceProvider { get; } /// /// Resolve the Kubernetes API client with the specified name. /// /// /// The client name. /// /// /// The resolved . /// public IKubeApiClient Get(string name) { if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'name'.", nameof(name)); KubeClientOptions clientOptions = ServiceProvider.GetRequiredService>().Get(name); if (clientOptions == null) throw new InvalidOperationException($"Cannot resolve a {nameof(KubeClientOptions)} instance named '{name}'."); clientOptions.LoggerFactory = ServiceProvider.GetService(); return KubeApiClient.Create(clientOptions); } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Assembly.cs ================================================ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("KubeClient.Extensions.KubeConfig.Tests")] ================================================ FILE: src/KubeClient.Extensions.KubeConfig/CryptoHelper.cs ================================================ using Org.BouncyCastle.Crypto; using Org.BouncyCastle.OpenSsl; using Org.BouncyCastle.Pkcs; using Org.BouncyCastle.Security; using System; using System.Collections.Generic; using System.IO; using System.Security.Cryptography; using BCX509Certificate = Org.BouncyCastle.X509.X509Certificate; using X509Certificate2 = System.Security.Cryptography.X509Certificates.X509Certificate2; #if NET9_0_OR_GREATER using X509CertificateLoader = System.Security.Cryptography.X509Certificates.X509CertificateLoader; #endif // NET9_0_OR_GREATER namespace KubeClient.Extensions.KubeConfig { /// /// Cryptographic helper methods. /// static class CryptoHelper { /// /// Convert a BouncyCastle X.509 certificate to a native (System.Security.Cryptography) certificate. /// /// /// The to convert. /// /// /// The converted . /// public static X509Certificate2 ToNativeX509Certificate(this BCX509Certificate certificate) { if (certificate == null) throw new ArgumentNullException(nameof(certificate)); byte[] derEncodedCertificate = certificate.GetEncoded(); #if !NET9_0_OR_GREATER return new X509Certificate2(derEncodedCertificate); #else // !NET9_0_OR_GREATER return X509CertificateLoader.LoadCertificate(derEncodedCertificate); #endif // !NET9_0_OR_GREATER } /// /// Get the thumbprint of a BouncyCastle X.509 certificate. /// /// /// The . /// /// /// The certificate thumbprint. /// public static string GetThumbprint(this BCX509Certificate certificate) { if (certificate == null) throw new ArgumentNullException(nameof(certificate)); using (X509Certificate2 nativeCertificate = certificate.ToNativeX509Certificate()) { return nativeCertificate.Thumbprint; } } /// /// Build a PFX (PKCS12) store containing the specified certificate and private key. /// /// /// A PEM block containing the certificate data. /// /// /// A PEM block containing the private key data. /// /// /// The password to use for protecting the exported data. /// /// /// A byte array containing the exported data. /// public static byte[] BuildPfx(string certificatePem, string keyPem, string password) { if (String.IsNullOrWhiteSpace(certificatePem)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'certificateData'.", nameof(certificatePem)); if (String.IsNullOrWhiteSpace(keyPem)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'keyData'.", nameof(keyPem)); if (String.IsNullOrWhiteSpace(password)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'password'.", nameof(password)); List chain = new List(); AsymmetricCipherKeyPair privateKey = null; foreach (object pemObject in EnumeratePemObjects(password, certificatePem, keyPem)) { if (pemObject is BCX509Certificate certificate) chain.Add(new X509CertificateEntry(certificate)); else if (pemObject is AsymmetricCipherKeyPair keyPair) privateKey = keyPair; } if (chain.Count == 0) throw new CryptographicException("Cannot find X.509 certificate in PEM data."); if (privateKey == null) throw new CryptographicException("Cannot find private key in PEM data."); string certificateSubject = chain[0].Certificate.SubjectDN.ToString(); Pkcs12Store store = new Pkcs12StoreBuilder().Build(); store.SetKeyEntry(certificateSubject, new AsymmetricKeyEntry(privateKey.Private), chain.ToArray()); using (MemoryStream pfxData = new MemoryStream()) { store.Save(pfxData, password.ToCharArray(), new SecureRandom()); return pfxData.ToArray(); } } /// /// Enumerate the objects in one or more PEM-encoded blocks. /// /// /// The password used to protect the encoded data. /// /// /// The PEM-encoded blocks. /// /// /// A sequence of BouncyCastle cryptographic objects (e.g. , , etc). /// public static IEnumerable EnumeratePemObjects(string pemPassword, params string[] pemBlocks) => EnumeratePemObjects(pemPassword, (IEnumerable)pemBlocks); /// /// Enumerate the objects in one or more PEM-encoded blocks. /// /// /// The password used to protect the encoded data. /// /// /// The PEM-encoded blocks. /// /// /// A sequence of BouncyCastle cryptographic objects (e.g. , , etc). /// public static IEnumerable EnumeratePemObjects(string pemPassword, IEnumerable pemBlocks) { if (pemBlocks == null) throw new ArgumentNullException(nameof(pemBlocks)); if (String.IsNullOrWhiteSpace(pemPassword)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'password'.", nameof(pemPassword)); var passwordStore = new StaticPasswordStore(pemPassword); foreach (string pemBlock in pemBlocks) { if (String.IsNullOrWhiteSpace(pemBlock)) continue; using (StringReader pemBlockReader = new StringReader(pemBlock)) { PemReader pemReader = new PemReader(pemBlockReader, passwordStore); object pemObject; while ((pemObject = pemReader.ReadObject()) != null) yield return pemObject; } } } /// /// A static implementation of used to feed the decryption password to BouncyCastle. /// class StaticPasswordStore : IPasswordFinder { /// /// The decryption password. /// readonly string _password; /// /// Create a new . /// /// /// The decryption password. /// public StaticPasswordStore(string password) { if (String.IsNullOrWhiteSpace(password)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'password'.", nameof(password)); _password = password; } /// /// Get a copy of the decryption password. /// /// /// An array of characters representing the decryption password. /// public char[] GetPassword() => _password.ToCharArray(); } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/K8sConfig.cs ================================================ using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Runtime.InteropServices; using YamlDotNet.Serialization; namespace KubeClient { using Extensions.KubeConfig.Models; using Microsoft.Extensions.Logging; /// /// Kubernetes client configuration. /// public class K8sConfig { /// /// The client configuration API version (should be "v1"). /// [YamlMember(Alias = "apiVersion")] public string ApiVersion { get; set; } = "v1"; /// /// The client configuration kind (should be "Configuration"). /// [YamlMember(Alias = "kind")] public string Kind { get; set; } = "Configuration"; /// /// The currently-selected Kubernetes context. /// [YamlMember(Alias = "current-context")] public string CurrentContextName { get; set; } /// /// Kubernetes contexts. /// [YamlMember(Alias = "contexts")] public List Contexts { get; set; } = new List(); /// /// Kubernetes clusters. /// [YamlMember(Alias = "clusters")] public List Clusters { get; set; } = new List(); /// /// Kubernetes user identities. /// [YamlMember(Alias = "users")] public List UserIdentities { get; set; } = new List(); /// /// Locate the full path of the configuration file ~/.kube/config. /// /// /// The full path of the config file. /// public static string Locate() { //Windows users in an AD domain with a Home Drive mapped will have the HOME environment variable set. //Mirror the logic that kubectl and other Kubernetes tools use for homedir resolution: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/client-go/util/homedir/homedir.go if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { var home = Environment.GetEnvironmentVariable("HOME"); if (!String.IsNullOrEmpty(home)) return Path.Combine(home, ".kube", "config"); var homeDrive = Environment.GetEnvironmentVariable("HOMEDRIVE"); var homePath = Environment.GetEnvironmentVariable("HOMEPATH"); if (!String.IsNullOrEmpty(homeDrive) && !String.IsNullOrEmpty(homePath)) return Path.Combine(homeDrive + homePath, ".kube", "config"); var userProfile = Environment.GetEnvironmentVariable("USERPROFILE"); if (!String.IsNullOrEmpty(userProfile)) return Path.Combine(userProfile, ".kube", "config"); } return Path.Combine(Environment.GetEnvironmentVariable("HOME"), ".kube", "config"); } /// /// Load and parse configuration from ~/.kube/config. /// /// /// The parsed configuration. /// public static K8sConfig Load() { return Load(configFile: Locate()); } /// /// Load and parse configuration from the specified file (usually ~/.kube/config). /// /// /// The path of the configuration file. /// /// /// The parsed configuration. /// public static K8sConfig Load(string configFile) => Load(new FileInfo(configFile)); /// /// Load and parse configuration from the specified file (usually ~/.kube/config). /// /// /// A representing the configuration file. /// /// /// The parsed configuration. /// public static K8sConfig Load(FileInfo configFile) { if (configFile == null) throw new ArgumentNullException(nameof(configFile)); IDeserializer deserializer = new DeserializerBuilder() .IgnoreUnmatchedProperties() .Build(); using (StreamReader configReader = configFile.OpenText()) { return deserializer.Deserialize(configReader); } } /// /// Create from the settings specified in the . /// /// /// The name of the Kubernetes context to use. /// /// If not specified, then the current context (as configured) will be used. /// /// /// The default Kubernetes namespace to use. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// public KubeClientOptions ToKubeClientOptions(string kubeContextName = null, string defaultKubeNamespace = null, ILoggerFactory loggerFactory = null) { var clientOptions = new KubeClientOptions { LoggerFactory = loggerFactory }; return ConfigureKubeClientOptions(clientOptions, kubeContextName, defaultKubeNamespace); } /// /// Configure from the settings specified in the . /// /// /// /// /// /// The name of the Kubernetes context to use. /// /// If not specified, then the current context (as configured) will be used. /// /// /// The default Kubernetes namespace to use. /// /// /// The configured . /// public KubeClientOptions ConfigureKubeClientOptions(KubeClientOptions kubeClientOptions, string kubeContextName = null, string defaultKubeNamespace = null) { if (kubeClientOptions == null) throw new ArgumentNullException(nameof(kubeClientOptions)); string targetContextName = kubeContextName ?? CurrentContextName; if (String.IsNullOrWhiteSpace(targetContextName)) throw new InvalidOperationException("The kubeContextName parameter was not specified, and the Kubernetes client configuration does not specify a current context."); Context targetContext = Contexts.Find(context => context.Name == targetContextName); if (targetContext == null) throw new InvalidOperationException($"Cannot find a context in the Kubernetes client configuration named '{targetContextName}'."); Cluster targetCluster = Clusters.Find(cluster => cluster.Name == targetContext.Config.ClusterName); if (targetCluster == null) throw new InvalidOperationException($"Cannot find a cluster in the Kubernetes client configuration named '{targetContext.Config.ClusterName}'."); UserIdentity targetUser = UserIdentities.Find(user => user.Name == targetContext.Config.UserName); if (targetUser == null) throw new InvalidOperationException($"Cannot find a user identity in the Kubernetes client configuration named '{targetContext.Config.UserName}'."); kubeClientOptions.ApiEndPoint = new Uri(targetCluster.Config.Server); kubeClientOptions.KubeNamespace = defaultKubeNamespace; kubeClientOptions.ClientCertificate = targetUser.Config.GetClientCertificate(); kubeClientOptions.AllowInsecure = targetCluster.Config.AllowInsecure; kubeClientOptions.CertificationAuthorityCertificate = targetCluster.Config.GetCACertificate(); // Mixed authentication types are not supported. if (kubeClientOptions.ClientCertificate == null) { string accessToken = targetUser.Config.GetRawToken(); if (!String.IsNullOrWhiteSpace(accessToken)) { kubeClientOptions.AccessToken = accessToken; kubeClientOptions.AuthStrategy = KubeAuthStrategy.BearerToken; } else if (!String.IsNullOrEmpty(targetUser.Config.Username) && !String.IsNullOrEmpty(targetUser.Config.Password)) { kubeClientOptions.Username = targetUser.Config.Username; kubeClientOptions.Password = targetUser.Config.Password; kubeClientOptions.AuthStrategy = KubeAuthStrategy.Basic; } else { kubeClientOptions.AuthStrategy = KubeAuthStrategy.None; } AuthProviderConfig authProvider = targetUser.Config.AuthProvider; if (authProvider != null) { kubeClientOptions.AuthStrategy = KubeAuthStrategy.BearerTokenProvider; if (authProvider.Config.TryGetValue("cmd-path", out object accessTokenCommand)) kubeClientOptions.AccessTokenCommand = (string)accessTokenCommand; if (authProvider.Config.TryGetValue("cmd-args", out object accessTokenCommandArguments)) kubeClientOptions.AccessTokenCommandArguments = (string)accessTokenCommandArguments; if (authProvider.Config.TryGetValue("token-key", out object accessTokenSelector)) kubeClientOptions.AccessTokenSelector = (string)accessTokenSelector; if (authProvider.Config.TryGetValue("expiry-key", out object accessTokenExpirySelector)) kubeClientOptions.AccessTokenExpirySelector = (string)accessTokenExpirySelector; if (authProvider.Config.TryGetValue("access-token", out object initialAccessToken)) kubeClientOptions.InitialAccessToken = (string)initialAccessToken; if (authProvider.Config.TryGetValue("expiry", out object initialTokenExpiry)) { kubeClientOptions.InitialTokenExpiryUtc = DateTime.Parse((string)initialTokenExpiry, provider: CultureInfo.InvariantCulture, styles: DateTimeStyles.AssumeUniversal ); } } CredentialPluginConfig execProvider = targetUser.Config.Exec; if (execProvider != null) { kubeClientOptions.AuthStrategy = KubeAuthStrategy.CredentialPlugin; kubeClientOptions.AccessTokenCommand = execProvider.Command; kubeClientOptions.AccessTokenCommandArguments = string.Join(" ", execProvider.Arguments); kubeClientOptions.AccessTokenSelector = ".status.token"; kubeClientOptions.AccessTokenExpirySelector = ".status.expirationTimestamp"; if (execProvider.EnvironmentVariables?.Count > 0) foreach (var envVar in execProvider.EnvironmentVariables) Environment.SetEnvironmentVariable(envVar.Name, envVar.Value); } } else kubeClientOptions.AuthStrategy = KubeAuthStrategy.ClientCertificate; return kubeClientOptions; } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/K8sConfigException.cs ================================================ using System; namespace KubeClient { /// /// Exception raised when invalid Kubernetes client configuration is encountered. /// public class K8sConfigException : KubeClientException { /// /// Create a new . /// /// /// The exception message. /// public K8sConfigException(string message) : base(message) { } /// /// Create a new , as caused by a previous exception. /// /// /// The exception message. /// /// /// The exception that caused the to be raised. /// public K8sConfigException(string message, Exception innerException) : base(message, innerException) { } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/KubeClient.Extensions.KubeConfig.csproj ================================================ net7.0;net8.0;net9.0;net10.0;netstandard2.1 Kubernetes client configuration support for KubeClient ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Models/AuthProviderConfig.cs ================================================ using System; using System.Collections.Generic; using YamlDotNet.Serialization; namespace KubeClient.Extensions.KubeConfig.Models { /// /// Configuration for a K8s client authentication provider. /// public class AuthProviderConfig { /// /// The provider name. /// [YamlMember(Alias = "name")] public string Name { get; set; } /// /// The raw provider configuration. /// [YamlMember(Alias = "config")] public Dictionary Config { get; set; } = new Dictionary(); } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Models/Cluster.cs ================================================ using YamlDotNet.Serialization; namespace KubeClient.Extensions.KubeConfig.Models { /// /// A Kubernetes cluster that clients can connect to. /// public class Cluster { /// /// The cluster name. /// [YamlMember(Alias = "name")] public string Name { get; set; } /// /// The cluster configuration. /// [YamlMember(Alias = "cluster")] public ClusterConfig Config { get; set; } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Models/ClusterConfig.cs ================================================ using System; using System.IO; using System.Security.Cryptography.X509Certificates; using YamlDotNet.Serialization; namespace KubeClient.Extensions.KubeConfig.Models { /// /// Client configuration for a Kubernetes cluster. /// public class ClusterConfig { /// /// The base address of the target server's API end-point. /// [YamlMember(Alias = "server")] public string Server { get; set; } /// /// Allow insecure connections (i.e. skip TLS verification)? /// [YamlMember(Alias = "insecure-skip-tls-verify")] public bool AllowInsecure { get; set; } /// /// A file containing the certification authority's PEM-encoded certificate. /// [YamlMember(Alias = "certificate-authority")] public string CertificateAuthorityFile { get; set; } /// /// The certification authority's certificate (Base64-encoded bytes representing a PEM block). /// [YamlMember(Alias = "certificate-authority-data")] public string CertificateAuthorityData { get; set; } /// /// Get the cluster's certification authority certificate. /// /// /// The CA certificate, as an , if configured; otherwise, null. /// public X509Certificate2 GetCACertificate() { byte[] certificateData; if (!String.IsNullOrWhiteSpace(CertificateAuthorityFile)) certificateData = File.ReadAllBytes(CertificateAuthorityFile); else if (!String.IsNullOrWhiteSpace(CertificateAuthorityData)) certificateData = Convert.FromBase64String(CertificateAuthorityData); else return null; #if !NET9_0_OR_GREATER return new X509Certificate2(certificateData); #else // !NET9_0_OR_GREATER return X509CertificateLoader.LoadCertificate(certificateData); #endif // !NET9_0_OR_GREATER } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Models/Context.cs ================================================ using YamlDotNet.Serialization; namespace KubeClient.Extensions.KubeConfig.Models { /// /// A Kubernetes context links a cluster with a specific user identity. /// public class Context { /// /// The context name. /// [YamlMember(Alias = "name")] public string Name { get; set; } /// /// The context configuration. /// [YamlMember(Alias = "context")] public ContextConfig Config { get; set; } = new ContextConfig(); } /// /// Configuration for a Kubernetes client context. /// public class ContextConfig { /// /// The name of the target cluster. /// [YamlMember(Alias = "cluster")] public string ClusterName { get; set; } /// /// The name of the user identity to use. /// [YamlMember(Alias = "user")] public string UserName { get; set; } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Models/CredentialPluginConfig.cs ================================================ using System.Collections.Generic; using KubeClient.Models; using YamlDotNet.Serialization; namespace KubeClient.Extensions.KubeConfig.Models { /// /// Configuration for a K8s client-go credential plugin. /// public class CredentialPluginConfig { /// /// The plugin command. /// [YamlMember(Alias = "command")] public string Command { get; set; } /// /// The API version to use when decoding the ExecCredentials resource. /// /// /// The API version returned by the plugin MUST match the version specified here. /// [YamlMember(Alias = "apiVersion")] public string ApiVersion { get; set; } /// /// Environment variables (if any) to set when running the plugin command. /// [YamlMember(Alias = "env")] public List EnvironmentVariables { get; set; } = new List(); /// /// Should be serialised? /// /// /// true, if should be serialised; otherwise, false. /// public bool ShouldSerializeEnvironmentVariables() => EnvironmentVariables.Count > 0; /// /// Command-line arguments (if any) to pass to the plugin command. /// [YamlMember(Alias = "args")] public List Arguments { get; set; } = new List(); /// /// Should be serialised? /// /// /// true, if should be serialised; otherwise, false. /// public bool ShouldSerializeArguments() => Arguments.Count > 0; } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Models/UserIdentity.cs ================================================ using YamlDotNet.Serialization; namespace KubeClient.Extensions.KubeConfig.Models { /// /// A user identity that clients can use when authenticating to a Kubernetes cluster. /// public class UserIdentity { /// /// The user identity name. /// [YamlMember(Alias = "name")] public string Name { get; set; } /// /// The user identity configuration. /// [YamlMember(Alias = "user")] public UserIdentityConfig Config { get; set; } } } ================================================ FILE: src/KubeClient.Extensions.KubeConfig/Models/UserIdentityConfig.cs ================================================ using System; using System.IO; using System.Security.Cryptography.X509Certificates; using System.Text; using YamlDotNet.Serialization; namespace KubeClient.Extensions.KubeConfig.Models { /// /// User identity configuration for a Kubernetes client. /// public class UserIdentityConfig { /// /// A Base64-encoded string containing the access token to use (will be placed in the "Authorization" header). /// [YamlMember(Alias = "token")] public string Token { get; set; } /// /// Optional configuration for an authentication provider. /// [YamlMember(Alias = "auth-provider")] public AuthProviderConfig AuthProvider { get; set; } /// /// Optional configuration for a client-go credential plugin. /// [YamlMember(Alias = "exec")] public CredentialPluginConfig Exec { get; set; } /// /// A file containing the PEM-encoded client certificate to use. /// [YamlMember(Alias = "client-certificate")] public string ClientCertificateFile { get; set; } /// /// A file containing the PEM-encoded private key associated with the client certificate to use. /// [YamlMember(Alias = "client-key")] public string ClientKeyFile { get; set; } /// /// The client certificate to use (Base64-encoded bytes representing a PEM block). /// [YamlMember(Alias = "client-certificate-data")] public string ClientCertificateData { get; set; } /// /// The private key to use (Base64-encoded bytes representing a PEM block). /// [YamlMember(Alias = "client-key-data")] public string ClientKeyData { get; set; } /// /// The username to use. /// [YamlMember(Alias = "username")] public string Username { get; set; } /// /// The password to use. /// [YamlMember(Alias = "password")] public string Password { get; set; } /// /// Get the raw Kubernetes authentication token (if any). /// /// /// The authentication token, if configured; otherwise, null. /// /// /// If the token starts with a "Bearer " prefix (i.e. already in HTTP Authorization header format), then this prefix will be stripped. /// public string GetRawToken() { if (String.IsNullOrWhiteSpace(Token)) return null; try { string token = Encoding.ASCII.GetString( Convert.FromBase64String(Token) ); if (token.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) return token.Substring("Bearer ".Length); } catch (FormatException) { // ignored in case the string is not base64 encoded. There's no good/reliable way to say for sure that a string is base64 encoded ('abcd' is technically a valid base64 string) } return Token; } /// /// Get the user's client certificate (if configured). /// /// /// The certificate (with private key), as an , if configured; otherwise, null. /// public X509Certificate2 GetClientCertificate() { string certificatePem, keyPem; if (!String.IsNullOrWhiteSpace(ClientCertificateFile) && !String.IsNullOrWhiteSpace(ClientKeyFile)) { certificatePem = File.ReadAllText(ClientCertificateFile); keyPem = File.ReadAllText(ClientKeyFile); } else if (!String.IsNullOrWhiteSpace(ClientCertificateData) && !String.IsNullOrWhiteSpace(ClientKeyData)) { certificatePem = Encoding.ASCII.GetString( Convert.FromBase64String(ClientCertificateData) ); keyPem = Encoding.ASCII.GetString( Convert.FromBase64String(ClientKeyData) ); } else return null; string pemPassword = Guid.NewGuid().ToString("N"); // AF: Not cryptographically-secure, but honestly in this context who cares? byte[] pfxData = CryptoHelper.BuildPfx(certificatePem, keyPem, pemPassword); #if !NET9_0_OR_GREATER return new X509Certificate2(pfxData, pemPassword, X509KeyStorageFlags.EphemeralKeySet); #else // !NET9_0_OR_GREATER return X509CertificateLoader.LoadPkcs12(pfxData, pemPassword, X509KeyStorageFlags.EphemeralKeySet); #endif // !NET9_0_OR_GREATER } } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/K8sChannelProtocol.cs ================================================ namespace KubeClient.Extensions.WebSockets { /// /// Well-known WebSocket sub-protocols used by the Kubernetes API. /// public static class K8sChannelProtocol { /// /// Version 1 of the Kubernetes channel WebSocket protocol. /// /// /// This protocol prepends each binary message with a byte indicating the channel number (zero indexed) that the message was sent on. /// Messages in both directions should prefix their messages with this channel byte. /// /// When used for remote execution, the channel numbers are by convention defined to match the POSIX file-descriptors assigned to STDIN, STDOUT, and STDERR (0, 1, and 2). /// No other conversion is performed on the raw subprotocol - writes are sent as they are received by the server. /// /// Example client session: /// /// CONNECT http://server.com with subprotocol "channel.k8s.io" /// WRITE []byte{0, 102, 111, 111, 10} # send "foo\n" on channel 0 (STDIN) /// READ []byte{1, 10} # receive "\n" on channel 1 (STDOUT) /// CLOSE /// public static readonly string V1 = "channel.k8s.io"; /// /// Version 1 of the Kubernetes Base64-encoded channel WebSocket protocol. /// /// /// This protocol base64 encodes each message with a character representing the channel number (zero indexed) the message was sent on (if the channel number is 1, then the character is '1', i.e. a byte value of 49). /// Messages in both directions should prefix their messages with this character. /// /// When used for remote execution, the channel numbers are by convention defined to match the POSIX file-descriptors assigned to STDIN, STDOUT, and STDERR ('0', '1', and '2'). /// The data received on the server is base64 decoded (and must be be valid) and data written by the server to the client is base64 encoded. /// /// Example client session: /// /// CONNECT http://server.com with subprotocol "base64.channel.k8s.io" /// WRITE []byte{48, 90, 109, 57, 118, 67, 103, 111, 61} # send "foo\n" (base64: "Zm9vCgo=") on channel '0' (STDIN) /// READ []byte{49, 67, 103, 61, 61} # receive "\n" (base64: "Cg==") on channel '1' (STDOUT) /// CLOSE /// public static readonly string Base64V1 = "base64.channel.k8s.io"; } /// /// Well-known Kubernetes channel (stream) indexes. /// public static class K8sChannel { /// /// The Kubernetes channel index representing process STDIN. /// public static readonly byte StdIn = 0; /// /// The Kubernetes channel index representing process STDOUT. /// public static readonly byte StdOut = 1; /// /// The Kubernetes channel index representing process STDERR. /// public static readonly byte StdErr = 2; /// /// The Kubernetes channel index representing the data stream for port-forwarding. /// public static readonly byte PortForwardData = 0; /// /// The Kubernetes channel index representing the error stream for port-forwarding. /// public static readonly byte PortForwardError = 1; } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/K8sMultiplexer.cs ================================================ using Microsoft.Extensions.Logging; using Nito.AsyncEx; using System; using System.Buffers; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Extensions.WebSockets { using Streams; /// /// A multiplexer / demultiplexer for Kubernetes-style WebSocket streams. /// /// /// Kubernetes streams add a single-byte prefix (indicating the stream index) to each payload (this can be one or more WebSocket packets, until EndOfMessage=true). /// /// For example, when using the PodV1 exec API, there are up to 3 separate streams: STDIN, STDOUT, and STDERR (with indexes 0, 1, and 2, respectively). /// public sealed class K8sMultiplexer : IDisposable { /// /// The default buffer size used for Kubernetes WebSockets. /// public const int DefaultBufferSize = 1024; /// /// The default maximum number of pending bytes that input streams can contain. /// public const int DefaultMaxInputStreamBytes = 4096; /// /// An asynchronous lock used to synchronise sending to the underlying WebSocket. /// readonly AsyncLock _sendMutex = new AsyncLock(); /// /// An asynchronous lock used to synchronise receiving from the underlying WebSocket. /// readonly AsyncLock _receiveMutex = new AsyncLock(); /// /// Input (read) streams, keyed by stream index. /// readonly Dictionary _inputStreams = new Dictionary(); /// /// Output (write) streams, keyed by stream index. /// readonly Dictionary _outputStreams = new Dictionary(); /// /// Pending write requests from output streams that will be interleaved and written to the WebSocket. /// readonly BlockingCollection _pendingSends = new BlockingCollection(new ConcurrentQueue()); /// /// Task completion source for . /// TaskCompletionSource _closeCompletion = new TaskCompletionSource(); /// /// A source for cancellation tokens used to halt the multiplexer's operation. /// CancellationTokenSource _cancellationSource; /// /// A representing the WebSocket message-send pump. /// Task _sendPump; /// /// A representing the WebSocket message-receive pump. /// Task _receivePump; /// /// Create a new . /// /// /// The target WebSocket. /// /// /// An array of bytes containing the indexes of the expected input streams. /// /// /// An array of bytes containing the indexes of the expected output streams. /// /// /// The used to create loggers for client components. /// /// /// The maximum number of pending bytes that input streams can contain. /// public K8sMultiplexer(WebSocket socket, byte[] inputStreamIndexes, byte[] outputStreamIndexes, ILoggerFactory loggerFactory, int maxInputStreamBytes = DefaultMaxInputStreamBytes) { if (socket == null) throw new ArgumentNullException(nameof(socket)); if (inputStreamIndexes == null) throw new ArgumentNullException(nameof(inputStreamIndexes)); if (outputStreamIndexes == null) throw new ArgumentNullException(nameof(outputStreamIndexes)); if (inputStreamIndexes.Length == 0 && outputStreamIndexes.Length == 0) throw new ArgumentException($"Must specify at least one of {nameof(inputStreamIndexes)} or {nameof(outputStreamIndexes)}."); if (loggerFactory == null) throw new ArgumentNullException(nameof(loggerFactory)); Log = loggerFactory.CreateLogger(); Socket = socket; foreach (byte inputStreamIndex in inputStreamIndexes) _inputStreams[inputStreamIndex] = new K8sMultiplexedReadStream(inputStreamIndex, maxInputStreamBytes, loggerFactory); foreach (byte outputStreamIndex in outputStreamIndexes) _outputStreams[outputStreamIndex] = new K8sMultiplexedWriteStream(outputStreamIndex, EnqueueSend, loggerFactory); Log.LogTrace("K8sMultiplexer created with {InputStreamCount} input streams (indexes: [{InputStreamIndexes}]) and {OutputStreamCount} output streams (indexes: [{OutputStreamIndexes}]).", _inputStreams.Count, String.Join(", ", _inputStreams.Keys), _outputStreams.Count, String.Join(", ", _outputStreams.Keys) ); } /// /// Dispose of resources being used by the . /// public void Dispose() { Log.LogTrace("Disposing..."); try { if (_receivePump != null || _sendPump != null) Shutdown().GetAwaiter().GetResult(); else _closeCompletion.TrySetResult(null); } catch (OperationCanceledException) { // Close operation timed out; nothing useful we can do here. } catch (AggregateException stopFailed) { _closeCompletion?.TrySetException(stopFailed); stopFailed.Flatten().Handle(exception => { Log.LogError(EventIds.K8sMultiplexer.DisposeStopError, stopFailed, "An unexpected error occurred during disposal of the K8sMultiplexer (failed to stop the send / receive loop)."); return true; }); } Log.LogTrace("Disposing K8sMultiplexer input / output channel streams..."); foreach (Stream inputStream in _inputStreams.Values) inputStream.Dispose(); foreach (Stream outputStream in _outputStreams.Values) outputStream.Dispose(); Log.LogTrace("Disposal complete."); } /// /// A that completes when the underlying WebSocket connection is closed. /// public Task WhenConnectionClosed => _closeCompletion.Task; /// /// The target WebSocket. /// WebSocket Socket { get; } /// /// The multiplexer's log facility. /// ILogger Log { get; } /// /// The used to halt the multiplexer's operation. /// CancellationToken Cancellation => _cancellationSource?.Token ?? CancellationToken.None; /// /// Get the input stream (if defined) with the specified stream index. /// /// /// The Kubernetes stream index of the target stream. /// /// /// The , or null if no stream is defined with the specified index. /// public Stream GetInputStream(byte streamIndex) { K8sMultiplexedReadStream readStream; _inputStreams.TryGetValue(streamIndex, out readStream); return readStream; } /// /// Get the output stream (if defined) with the specified stream index. /// /// /// The Kubernetes stream index of the target stream. /// /// /// The , or null if no stream is defined with the specified index. /// public Stream GetOutputStream(byte streamIndex) { K8sMultiplexedWriteStream writeStream; _outputStreams.TryGetValue(streamIndex, out writeStream); return writeStream; } /// /// Start processing stream data. /// public void Start() { if (_sendPump != null && _receivePump != null) throw new InvalidOperationException("Send / receive pumps are already running."); _cancellationSource = new CancellationTokenSource(); _closeCompletion = new TaskCompletionSource(); _sendPump = SendPump(); _receivePump = ReceivePump(); } /// /// Stop processing stream data and close the underlying . /// /// /// An optional that can be used to abort the WebSocket's close operation. /// /// /// A representing the asynchronous operation. /// public async Task Shutdown(CancellationToken cancellation = default) { if (_sendPump == null && _receivePump == null) throw new InvalidOperationException("Send / receive pumps are not running."); Log.LogTrace("Shutting down..."); if (_cancellationSource != null) { Log.LogTrace("Initiating cancellation of the send / receive pumps..."); _cancellationSource.Cancel(); _cancellationSource.Dispose(); _cancellationSource = null; } Log.LogTrace("Waiting for send / receive pumps to shut down..."); Task timeout = Task.Delay(TimeSpan.FromMilliseconds(100), cancellation); Task firstCompleted = await Task.WhenAny(Task.WhenAll(_sendPump, _receivePump), timeout).ConfigureAwait(false); if (ReferenceEquals(firstCompleted, timeout)) await timeout.ConfigureAwait(false); // Propagate exception from cancellation (if required), but not from stopping the send / receive pumps. _sendPump = null; _receivePump = null; if (Socket.State == WebSocketState.Open) { Log.LogTrace("Closing WebSocket..."); await Socket.CloseAsync( WebSocketCloseStatus.NormalClosure, "Connection closed.", CancellationToken.None ).ConfigureAwait(false); Log.LogTrace("WebSocket closed."); } else Log.LogTrace("Not closing WebSocket (current state is {WebSocketState}).", Socket.State); _closeCompletion.TrySetResult(null); _closeCompletion = new TaskCompletionSource(); Log.LogTrace("Shutdown complete."); } /// /// Enqueue a send operation (asynchronously write data to the outgoing stream). /// /// /// The index of the target stream. /// /// /// The data to write. /// /// /// An optional that can be used to cancel the operation. /// /// /// A representing the asynchronous operation. /// Task EnqueueSend(byte streamIndex, ArraySegment data, CancellationToken cancellation) { Log.LogTrace("Enqueuing {DataLength} bytes for sending on stream {StreamIndex}...", data.Count, streamIndex); PendingSend pendingSend = new PendingSend(streamIndex, data, cancellation); cancellation.Register( () => pendingSend.Completion.TrySetCanceled(cancellation) ); _pendingSends.Add(pendingSend); Log.LogTrace("Enqueued {DataLength} bytes for sending on stream {StreamIndex}.", data.Count, streamIndex); return pendingSend.Completion.Task; } /// /// Receive incoming data from the WebSocket. /// /// /// A representing the pump's operation. /// async Task ReceivePump() { // Capture our cancellation token so it works even if the source is disposed. CancellationToken cancellation = Cancellation; await Task.Yield(); Log.LogTrace("Message-receive pump started."); ArraySegment buffer = ArraySegment.Empty; try { while (Socket.State == WebSocketState.Open) { using (await _receiveMutex.LockAsync(cancellation).ConfigureAwait(false)) { buffer = CreateReadBuffer(); WebSocketReceiveResult readResult = await Socket.ReceiveAsync(buffer, cancellation).ConfigureAwait(false); if (readResult.MessageType == WebSocketMessageType.Close) { Log.LogDebug("Received first half of connection-close handshake (Status = {CloseStatus}, Description = {CloseStatusDescription}).", readResult.CloseStatus.Value, readResult.CloseStatusDescription ); Log.LogDebug("Sending second half of connection-close handshake..."); await Socket.CloseAsync(readResult.CloseStatus.Value, readResult.CloseStatusDescription, cancellation); Log.LogDebug("Sent second half of connection-close handshake."); _closeCompletion.TrySetResult(null); return; } if (readResult.Count <= 1 && readResult.EndOfMessage) { // Effectively an empty packet; ignore. buffer = buffer.Release(); continue; } // Extract stream index. byte streamIndex = buffer[0]; Log.LogTrace("Received {DataLength} bytes for stream {StreamIndex} (EndOfMessage = {EndOfMessage}).", readResult.Count - 1, streamIndex, readResult.EndOfMessage ); K8sMultiplexedReadStream readStream; if (!_inputStreams.TryGetValue(streamIndex, out readStream)) { Log.LogTrace("Stream {StreamIndex} is not registered; discarding data...", streamIndex); await DiscardMessageRemainder(buffer, cancellation).ConfigureAwait(false); buffer = buffer.Release(); Log.LogTrace("Ignored remaining data for stream {StreamIndex}.", streamIndex); continue; } if (readStream.IsCompleted) { Log.LogTrace("Stream {StreamIndex} is completed; discarding data...", streamIndex); await DiscardMessageRemainder(buffer, cancellation).ConfigureAwait(false); buffer = buffer.Release(); Log.LogTrace("Ignored remaining data for completed stream {StreamIndex}.", streamIndex); continue; } // Skip over stream index. buffer = buffer.Slice(offset: 1, count: readResult.Count - 1); readStream.AddPendingRead(buffer); // Capture any remaining data for this stream segment. while (!readResult.EndOfMessage) { buffer = CreateReadBuffer(); readResult = await Socket.ReceiveAsync(buffer, cancellation).ConfigureAwait(false); if (readResult.Count == 0 || readResult.MessageType != WebSocketMessageType.Binary) { buffer = buffer.Release(); break; } Log.LogTrace("Received {DataLength} additional bytes for stream {StreamIndex} (EndOfMessage = {EndOfMessage}).", readResult.Count, streamIndex, readResult.EndOfMessage ); if (readStream.IsCompleted) { Log.LogTrace("Stream {StreamIndex} is completed; discarding remaining data...", streamIndex); await DiscardMessageRemainder(buffer, cancellation).ConfigureAwait(false); buffer = buffer.Release(); Log.LogTrace("Ignored remaining data for completed stream {StreamIndex}.", streamIndex); break; } buffer = buffer.Slice(readResult.Count); readStream.AddPendingRead(buffer); } } } foreach (K8sMultiplexedReadStream readStream in _inputStreams.Values) readStream.Complete(); } catch (OperationCanceledException) { // Clean termination. foreach (K8sMultiplexedReadStream readStream in _inputStreams.Values) readStream.Complete(); } catch (WebSocketException websocketError) when (websocketError.WebSocketErrorCode == WebSocketError.ConnectionClosedPrematurely) { // Connection closed by remote host without completing the close handshake. Consider writing a Trace log entry noting this fact. foreach (K8sMultiplexedReadStream readStream in _inputStreams.Values) readStream.Fault(websocketError); } catch (Exception unexpectedError) { Log.LogError(EventIds.K8sMultiplexer.ReceivePumpError, unexpectedError, "The message-receive pump encountered an unexpected error."); foreach (K8sMultiplexedReadStream readStream in _inputStreams.Values) readStream.Fault(unexpectedError); } finally { if (buffer.Array != null) ArrayPool.Shared.Return(buffer.Array); Log.LogTrace("Message-receive pump terminated."); } } /// /// Send outgoing data to the WebSocket. /// /// /// A representing the pump's operation. /// async Task SendPump() { // Capture our cancellation token so it works even if the source is disposed. CancellationToken cancellation = Cancellation; await Task.Yield(); Log.LogTrace("Message-send pump started."); try { while (!cancellation.IsCancellationRequested && Socket.State == WebSocketState.Open) { PendingSend pendingSend; if (_pendingSends.TryTake(out pendingSend, Timeout.Infinite, cancellation) ) { using (CancellationTokenSource linkedCancellation = CancellationTokenSource.CreateLinkedTokenSource(cancellation, pendingSend.Cancellation)) using (await _sendMutex.LockAsync(linkedCancellation.Token).ConfigureAwait(false)) { byte[] dataWithPrefix = ArrayPool.Shared.Rent(pendingSend.Data.Count + 1); try { dataWithPrefix[0] = pendingSend.StreamIndex; Array.Copy(pendingSend.Data.Array, pendingSend.Data.Offset, dataWithPrefix, 1, pendingSend.Data.Count); var sendBuffer = new ArraySegment(dataWithPrefix, 0, pendingSend.Data.Count + 1); await Socket.SendAsync(sendBuffer, messageType: WebSocketMessageType.Binary, endOfMessage: true, cancellationToken: linkedCancellation.Token ).ConfigureAwait(false); pendingSend.Completion.TrySetResult(null); } catch (OperationCanceledException sendCancelled) when (sendCancelled.CancellationToken == linkedCancellation.Token) { pendingSend.Completion.TrySetCanceled(sendCancelled.CancellationToken); } catch (Exception writeFailed) { pendingSend.Completion.TrySetException(writeFailed); } finally { ArrayPool.Shared.Return(dataWithPrefix, clearArray: true); } } } } } catch (OperationCanceledException canceled) when (canceled.CancellationToken == cancellation) { // Clean termination. } catch (Exception unexpectedError) { Log.LogError(EventIds.K8sMultiplexer.SendPumpError, unexpectedError, "The message-send pump encountered an unexpected error."); } finally { Log.LogTrace("Message-receive pump terminated."); } } /// /// Rent a buffer from the pool for reading from the transport. /// /// /// The buffer, as an . /// ArraySegment CreateReadBuffer() => new ArraySegment( ArrayPool.Shared.Rent(minimumLength: DefaultBufferSize), offset: 0, count: DefaultBufferSize ); /// /// Asynchronously discard the remainder of an incoming message from the underlying WebSocket. /// /// /// The buffer used to receive data. /// /// /// A that can be used to cancel the operation. /// /// /// A representing the asynchronous operation. /// async Task DiscardMessageRemainder(ArraySegment buffer, CancellationToken cancellation) { WebSocketReceiveResult readResult = readResult = await Socket.ReceiveAsync(buffer, cancellation).ConfigureAwait(false); while (!readResult.EndOfMessage) readResult = await Socket.ReceiveAsync(buffer, cancellation).ConfigureAwait(false); } /// /// Represents a pending send operation. /// class PendingSend // TODO: Include stream index here and let the multiplexer prepend it instead of doing it in the write-stream. { /// /// Create a new . /// /// /// The index of the target stream. /// /// /// The data (including stream-index prefix) to be written to the web socket. /// /// /// A cancellation token to that can be used to cancel the send operation. /// public PendingSend(byte streamIndex, ArraySegment data, CancellationToken cancellation) { if (data.Array == null) throw new ArgumentNullException(nameof(data)); StreamIndex = streamIndex; Data = data; Cancellation = cancellation; } /// /// The index of the target stream. /// public byte StreamIndex { get; } /// /// The data (including stream-index prefix) to be written to the web socket. /// public ArraySegment Data { get; } /// /// A cancellation token to that can be used to cancel the send operation. /// public CancellationToken Cancellation { get; } /// /// A used to represent the asynchronous send operation. /// public TaskCompletionSource Completion { get; } = new TaskCompletionSource(); } } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/K8sMultiplexerChannelExtensions.cs ================================================ using System; using System.IO; namespace KubeClient.Extensions.WebSockets { /// /// Channel-related extension methods for . /// public static class K8sMultiplexerChannelExtensions { /// /// Get an output stream representing process STDIN. /// /// /// The Kubernetes channel multiplexer. /// /// /// The , or null if the STDIN stream is not available. /// public static Stream GetStdIn(this K8sMultiplexer multiplexer) { if (multiplexer == null) throw new ArgumentNullException(nameof(multiplexer)); return multiplexer.GetOutputStream(K8sChannel.StdIn); } /// /// Get an output stream representing process STDOUT. /// /// /// The Kubernetes channel multiplexer. /// /// /// The , or null if the STDOUT stream is not available. /// public static Stream GetStdOut(this K8sMultiplexer multiplexer) { if (multiplexer == null) throw new ArgumentNullException(nameof(multiplexer)); return multiplexer.GetInputStream(K8sChannel.StdOut); } /// /// Get an output stream representing process STDERR. /// /// /// The Kubernetes channel multiplexer. /// /// /// The , or null if the STDERR stream is not available. /// public static Stream GetStdErr(this K8sMultiplexer multiplexer) { if (multiplexer == null) throw new ArgumentNullException(nameof(multiplexer)); return multiplexer.GetInputStream(K8sChannel.StdErr); } } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/KubeClient.Extensions.WebSockets.csproj ================================================ net7.0;net8.0;net9.0;net10.0;netstandard2.1 WebSockets support for KubeClient ================================================ FILE: src/KubeClient.Extensions.WebSockets/KubeClientExtensions.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Diagnostics; using System.Net.Security; using System.Net.WebSockets; using System.Reflection; using System.Security.Cryptography.X509Certificates; using System.Threading; using System.Threading.Tasks; namespace KubeClient { using Extensions.WebSockets; using Http; /// /// WebSockets extension methods for . /// public static class KubeClientExtensions { /// /// Apply client web-socket options from the specified Kubernetes API client. /// /// /// The to configure. /// /// /// The . /// /// public static void ApplyClientOptions(this ClientWebSocketOptions socketOptions, IKubeApiClient client) { if (socketOptions == null) throw new ArgumentNullException(nameof(socketOptions)); if (client == null) throw new ArgumentNullException(nameof(client)); KubeClientOptions clientOptions = client.GetClientOptions(); if (!String.IsNullOrWhiteSpace(clientOptions.AccessToken)) socketOptions.SetRequestHeader("Authorization", $"Bearer {clientOptions.AccessToken}"); if (clientOptions.ClientCertificate != null) socketOptions.ClientCertificates.Add(clientOptions.ClientCertificate); if (clientOptions.CertificationAuthorityCertificate != null) { socketOptions.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { if (sslPolicyErrors != SslPolicyErrors.RemoteCertificateChainErrors) return false; try { using (X509Chain certificateChain = new X509Chain()) { certificateChain.ChainPolicy.ExtraStore.Add(clientOptions.CertificationAuthorityCertificate); certificateChain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; certificateChain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; return certificateChain.Build( (X509Certificate2)certificate ); } } catch (Exception chainException) { ILoggerFactory loggerFactory = clientOptions.LoggerFactory; if (loggerFactory != null) { loggerFactory.CreateLogger(typeof(KubeClientExtensions)) .LogError(chainException, "Failed to build X.509 certificate chain for remote certificate."); } else Debug.WriteLine(chainException); return false; } }; } else if (clientOptions.AllowInsecure) socketOptions.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; } /// /// Open a WebSocket connection using the sub-protocol. /// /// /// The Kubernetes API client. /// /// /// The target URI. /// /// /// An optional cancellation token that can be used to cancel the request. /// /// /// The configured . /// public static Task ConnectWebSocket(this IKubeApiClient client, string targetUri, CancellationToken cancellationToken = default) { if (client == null) throw new ArgumentNullException(nameof(client)); if (String.IsNullOrWhiteSpace(targetUri)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'targetUri'.", nameof(targetUri)); return client.ConnectWebSocket(new Uri(client.ApiEndPoint, targetUri), cancellationToken); } /// /// Open a WebSocket connection using the sub-protocol. /// /// /// The Kubernetes API client. /// /// /// The target URI. /// /// /// An optional cancellation token that can be used to cancel the request. /// /// /// The configured . /// public static async Task ConnectWebSocket(this IKubeApiClient client, Uri targetUri, CancellationToken cancellationToken = default) { if (client == null) throw new ArgumentNullException(nameof(client)); if (targetUri == null) throw new ArgumentNullException(nameof(targetUri)); if (!targetUri.IsAbsoluteUri) targetUri = new Uri(client.ApiEndPoint, targetUri); UriBuilder targetUriBuilder = new UriBuilder(targetUri); switch (targetUriBuilder.Scheme) { case "ws": case "wss": { break; } case "http": { targetUriBuilder.Scheme = "ws"; break; } case "https": { targetUriBuilder.Scheme = "wss"; break; } default: { throw new ArgumentException($"Target URI has invalid scheme '{targetUriBuilder.Scheme}' (expected one of 'http', 'https', 'ws', or 'wss').", nameof(targetUri)); } } targetUri = targetUriBuilder.Uri; ClientWebSocket webSocket = new ClientWebSocket(); try { ClientWebSocketOptions webSocketOptions = webSocket.Options; webSocketOptions.ApplyClientOptions(client); webSocketOptions.AddSubProtocol(K8sChannelProtocol.V1); webSocketOptions.SetBuffer( receiveBufferSize: 2048, sendBufferSize: 2048 ); await webSocket.ConnectAsync(targetUri, cancellationToken).ConfigureAwait(false); return webSocket; } catch (Exception) { // Clean up. using (webSocket) { throw; } } } /// /// Open a WebSocket connection using the sub-protocol. /// /// /// The type to use use as template parameters. /// /// /// The Kubernetes API client. /// /// /// The target URI or URI template. /// /// /// The whose properties will be used as template parameters. /// /// /// An optional cancellation token that can be used to cancel the request. /// /// /// The configured . /// public static Task ConnectWebSocket(this IKubeApiClient client, string targetUri, TParameters uriTemplateParameters, CancellationToken cancellationToken = default) where TParameters : class { if (client == null) throw new ArgumentNullException(nameof(client)); if (uriTemplateParameters == null) throw new ArgumentNullException(nameof(uriTemplateParameters)); var parameters = new Dictionary(); // yesyesyes, reflection might be "slow", but it's still blazingly fast compared to making a request over the network. foreach (PropertyInfo property in typeof(TParameters).GetTypeInfo().DeclaredProperties) { // Ignore write-only properties. if (!property.CanRead) continue; // Public instance properties only. if (!property.GetMethod.IsPublic || property.GetMethod.IsStatic) continue; parameters.Add(property.Name, property.GetValue(uriTemplateParameters)?.ToString() ); } return client.ConnectWebSocket(new UriTemplate(targetUri), parameters, cancellationToken); } /// /// Open a WebSocket connection using the sub-protocol. /// /// /// The Kubernetes API client. /// /// /// The template used to generate the target URI. /// /// /// A containing the template parameters. /// /// /// An optional cancellation token that can be used to cancel the request. /// /// /// The configured . /// public static Task ConnectWebSocket(this IKubeApiClient client, UriTemplate targetUri, Dictionary templateParameters, CancellationToken cancellationToken = default) { if (client == null) throw new ArgumentNullException(nameof(client)); if (targetUri == null) throw new ArgumentNullException(nameof(targetUri)); if (templateParameters == null) throw new ArgumentNullException(nameof(templateParameters)); return client.ConnectWebSocket( targetUri.Populate(client.ApiEndPoint, templateParameters), cancellationToken ); } /// /// Create a Kubernetes-style multiplexed connection over the WebSocket. /// /// /// The . /// /// /// An array of bytes containing the indexes of the expected input streams. /// /// /// An array of bytes containing the indexes of the expected output streams. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// public static K8sMultiplexer Multiplexed(this WebSocket websocket, byte[] inputStreamIndexes = null, byte[] outputStreamIndexes = null, ILoggerFactory loggerFactory = null) { if (websocket == null) throw new ArgumentNullException(nameof(websocket)); if (!(inputStreamIndexes?.Length > 0 || outputStreamIndexes?.Length > 0)) throw new ArgumentException($"Must specify at least one of {nameof(inputStreamIndexes)} or {nameof(outputStreamIndexes)}."); if (loggerFactory == null) loggerFactory = new LoggerFactory(); K8sMultiplexer multiplexer = null; try { multiplexer = new K8sMultiplexer(websocket, inputStreamIndexes, outputStreamIndexes, loggerFactory); multiplexer.Start(); return multiplexer; } catch (Exception) { using (multiplexer) throw; } } /// /// Create a Kubernetes-style multiplexed connection over the WebSocket. /// /// /// The . /// /// /// An array of bytes containing the indexes of the expected input streams. /// /// /// An array of bytes containing the indexes of the expected output streams. /// /// /// An optional used to create loggers for client components. /// /// /// The configured . /// public static async Task Multiplexed(this Task webSocketTask, byte[] inputStreamIndexes = null, byte[] outputStreamIndexes = null, ILoggerFactory loggerFactory = null) { if (webSocketTask == null) throw new ArgumentNullException(nameof(webSocketTask)); WebSocket webSocket = await webSocketTask; try { return webSocket.Multiplexed(inputStreamIndexes, outputStreamIndexes, loggerFactory); } catch (Exception) { using (webSocket) throw; } } } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/LogEventIds.cs ================================================ using Microsoft.Extensions.Logging; namespace KubeClient.Extensions.WebSockets { /// /// Well-known event Ids for KubeClient.Extensions.WebSockets log entries. /// static class EventIds { /// /// Well-known event Ids for . /// public static class K8sMultiplexer { /// /// An unexpected error occurred while running the send pump. /// public static EventId SendPumpError = new EventId(400, nameof(SendPumpError)); /// /// An unexpected error occurred while running the receive pump. /// public static EventId ReceivePumpError = new EventId(401, nameof(ReceivePumpError)); /// /// An error occurred while stopping the multiplexer during disposal. /// public static EventId DisposeStopError = new EventId(520, nameof(DisposeStopError)); } } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/ResourceClientWebSocketExtensions.cs ================================================ using System; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; namespace KubeClient { using Extensions.WebSockets; using ResourceClients; /// /// WebSocket-related extension methods for Kubernetes resource clients. /// public static class ResourceClientWebSocketExtensions { /// /// Start a new process in a Pod's container and open a multiplexed connection to its STDIN / STDOUT / STDERR. /// /// /// The . /// /// /// The name of the target pod. /// /// /// The command to execute (command-line arguments not supported yet). /// /// /// Create an output stream connected to the target container's STDIN? /// /// /// Create an output stream connected to the target container's STDOUT? /// /// /// Create an output stream connected to the target container's STDERR? /// /// /// Attach a TTY to the process? /// /// /// The name of the target container within the pod. /// /// Optional if the pod only has a single container. /// /// /// The name of the target Kubernetes namespace that contains the pod. /// /// If not specified, the is used. /// /// /// An optional that can be used to cancel the request. /// /// /// A that provides access to the input and output streams. /// public static Task ExecAndConnect(this IPodClientV1 podClient, string podName, string command, bool stdin = false, bool stdout = true, bool stderr = false, bool tty = false, string container = null, string kubeNamespace = null, CancellationToken cancellation = default) { if (podClient == null) throw new ArgumentNullException(nameof(podClient)); byte[] outputStreamIndexes = stdin ? new byte[1] { 0 } : new byte[0]; byte[] inputStreamIndexes; if (stdout && stderr) inputStreamIndexes = new byte[2] { 1, 2 }; else if (stdout) inputStreamIndexes = new byte[1] { 1 }; else if (stderr) inputStreamIndexes = new byte[1] { 2 }; else if (!stdin) throw new InvalidOperationException("Must specify at least one of STDIN, STDOUT, or STDERR."); else inputStreamIndexes = new byte[0]; return podClient.ExecAndConnectRaw(podName, command, stdin, stdout, stderr, tty, container, kubeNamespace, cancellation) .Multiplexed(inputStreamIndexes, outputStreamIndexes, loggerFactory: podClient.KubeClient.LoggerFactory ); } /// /// Start a new process in a Pod's container and open a WebSocket connection to its STDIN / STDOUT / STDERR. /// /// /// The . /// /// /// The name of the target pod. /// /// /// The command to execute (command-line arguments not supported yet). /// /// /// Create an output stream connected to the target container's STDIN? /// /// /// Create an output stream connected to the target container's STDOUT? /// /// /// Create an output stream connected to the target container's STDERR? /// /// /// Attach a TTY to the process? /// /// /// The name of the target container within the pod. /// /// Optional if the pod only has a single container. /// /// /// The name of the target Kubernetes namespace that contains the pod. /// /// If not specified, the is used. /// /// /// An optional that can be used to cancel the request. /// /// /// The connected . /// public static async Task ExecAndConnectRaw(this IPodClientV1 podClient, string podName, string command, bool stdin = false, bool stdout = true, bool stderr = false, bool tty = false, string container = null, string kubeNamespace = null, CancellationToken cancellation = default) { if (podClient == null) throw new ArgumentNullException(nameof(podClient)); var uriTemplateParameters = new { PodName = podName, Command = command, StdIn = stdin, StdOut = stdout, StdErr = stderr, TTY = tty, Container = container, KubeNamespace = kubeNamespace ?? podClient.KubeClient.DefaultNamespace }; return await podClient.KubeClient.ConnectWebSocket( "api/v1/namespaces/{KubeNamespace}/pods/{PodName}/exec?stdin={StdIn?}&stdout={StdOut?}&stderr={StdErr?}&tty={TTY?}&command={Command}&container={Container?}", uriTemplateParameters, cancellation ); } } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/Streams/K8sMultiplexedReadStream.cs ================================================ using Microsoft.Extensions.Logging; using Nito.AsyncEx; using System; using System.Buffers; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Text; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Extensions.WebSockets.Streams { /// /// Represents a single input substream within a Kubernetes-style multiplexed stream. /// sealed class K8sMultiplexedReadStream : Stream { /// /// A lock used to synchronise access to reader state. /// readonly AsyncLock _mutex; /// /// A condition variable indicating availability of data to read or the stream's completion. /// readonly AsyncConditionVariable _completedOrDataAvailable; /// /// The stream's queue of pending read operations. /// readonly Queue _pendingReads = new Queue(); /// /// The number of bytes currently pending in the stream. /// int _bytesPending; /// /// If the stream is in the faulted completed or faulted state, this caches the task representing that state. /// Task _completion; /// /// Create a new . /// /// /// The Kubernetes stream index of the target input stream. /// /// /// The maximum number of pending bytes that the stream can hold. /// /// /// The used to create loggers for client components. /// public K8sMultiplexedReadStream(byte streamIndex, int maxPendingBytes, ILoggerFactory loggerFactory) { if (maxPendingBytes < 1) throw new ArgumentOutOfRangeException(nameof(maxPendingBytes), maxPendingBytes, "Maximum number of pending bytes cannot be less than 1."); _mutex = new AsyncLock(); _completedOrDataAvailable = new AsyncConditionVariable(_mutex); StreamIndex = streamIndex; MaxPendingBytes = maxPendingBytes; Log = loggerFactory.CreateLogger(); } /// /// Dispose of resources used by the . /// /// /// Explicit disposal? /// protected override void Dispose(bool disposing) { if (disposing && !IsDisposed) { using (_mutex.Lock()) { IsDisposed = true; _completedOrDataAvailable.NotifyAll(); // Release any tasks that are waiting. // Ensure we don't leak memory. foreach (PendingRead pendingRead in _pendingReads) pendingRead.Release(); _pendingReads.Clear(); } } } /// /// Check if the stream has been disposed. /// void CheckDisposed() { if (IsDisposed) throw new ObjectDisposedException(GetType().FullName); } /// /// The Kubernetes stream index of the target input stream. /// public byte StreamIndex { get; } /// /// The maximum number of pending bytes that the stream can hold. /// public int MaxPendingBytes { get; } /// /// Has the stream been disposed? /// public bool IsDisposed { get; private set; } /// /// Does the stream support reading? /// public override bool CanRead => true; /// /// Does the stream support seeking? /// public override bool CanSeek => false; /// /// Does the stream support writing? /// public override bool CanWrite => false; /// /// The stream length (not supported). /// public override long Length => throw new NotSupportedException("The stream does not support seeking."); /// /// The stream position (not supported). /// public override long Position { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } /// /// Is the stream in the completed state? /// public bool IsCompleted => _completion != null || IsDisposed; /// /// The stream's log facility. /// ILogger Log { get; } /// /// Read data from the stream. /// /// /// The buffer to which the incoming data will be written. /// /// /// The offset within the buffer to which data will be written. /// /// /// The maximum number of bytes to read. /// /// /// The number of bytes that were read from the stream. /// public override int Read(byte[] buffer, int offset, int count) { if (buffer == null) throw new ArgumentNullException(nameof(buffer)); CheckDisposed(); if (IsCompleted) return _completion.GetAwaiter().GetResult(); using (_mutex.Lock()) { PendingRead pendingRead; if (!_pendingReads.TryPeek(out pendingRead)) { // Wait for data. _completedOrDataAvailable.Wait(); if (!_pendingReads.TryPeek(out pendingRead)) { // If we get here, then the stream was completed, so our read should be aborted. Debug.Assert(IsCompleted, "No pending read available, but stream is not completed."); return _completion.GetAwaiter().GetResult(); } } int bytesRead = pendingRead.DrainTo(buffer, offset); _bytesPending -= bytesRead; if (pendingRead.IsEmpty) Consume(pendingRead); // Source buffer has been consumed. return bytesRead; } } /// /// Asynchronously read data from the stream. /// /// /// The buffer to which the incoming data will be written. /// /// /// The offset within the buffer to which data will be written. /// /// /// The maximum number of bytes to read. /// /// /// A that can be used to cancel the operation. /// /// /// The number of bytes that were read from the stream. /// public override async Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) { if (buffer == null) throw new ArgumentNullException(nameof(buffer)); CheckDisposed(); if (IsCompleted) return await _completion.ConfigureAwait(false); PendingRead pendingRead; using (await _mutex.LockAsync(cancellationToken).ConfigureAwait(false)) { if (!_pendingReads.TryPeek(out pendingRead)) { // Wait for data. await _completedOrDataAvailable.WaitAsync(cancellationToken).ConfigureAwait(false); if (!_pendingReads.TryPeek(out pendingRead)) { // If we get here, then the stream was completed, so our read should be aborted. Debug.Assert(IsCompleted, "No pending read available, but stream is not completed."); return await _completion.ConfigureAwait(false); } } // Last chance to cancel non-destructively. cancellationToken.ThrowIfCancellationRequested(); int bytesRead = pendingRead.DrainTo(buffer, offset); _bytesPending -= bytesRead; if (pendingRead.IsEmpty) Consume(pendingRead); // Source buffer has been consumed. return bytesRead; } } /// /// Flush pending data (not supported). /// public override void Flush() => throw new NotSupportedException("The stream does not support writing."); /// /// Seek to the specified position in the stream (not supported). /// /// /// The seek offset, relative to the specified . /// /// /// The seek origin. /// /// /// The new stream position. /// public override long Seek(long offset, SeekOrigin origin) => throw new NotSupportedException("Stream does not support seeking."); /// /// Set the stream length (not supported). /// /// /// The new stream length. /// public override void SetLength(long value) => throw new NotSupportedException("Stream does not support seeking."); /// /// Write data to the stream (not supported). /// /// /// A buffer containing the data to write. /// /// /// The offset, within the buffer, of the data to write. /// /// /// The number of bytes to write. /// public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException("Stream does not support writing."); /// /// Make data available to be read from the stream. /// /// /// An representing the data. /// internal void AddPendingRead(ArraySegment data) { if (data.Array == null) throw new ArgumentNullException(nameof(data)); using (_mutex.Lock()) { if (IsDisposed) { ArrayPool.Shared.Return(data.Array, clearArray: true); return; } if (_bytesPending + data.Count > MaxPendingBytes) { Fault(new IOException( $"Capacity of read buffer for stream {StreamIndex} ({MaxPendingBytes} bytes) has been exceeded." )); ArrayPool.Shared.Return(data.Array, clearArray: true); return; } _pendingReads.Enqueue(new PendingRead(data)); _bytesPending += data.Count; _completedOrDataAvailable.Notify(); } } /// /// Mark the stream as completed. /// internal void Complete() { using (_mutex.Lock()) { if (IsDisposed) return; if (_completion == null) { _completion = Task.FromResult(0); Log.LogTrace("Marked read stream {StreamIndex} as successfully completed.", StreamIndex); } } } /// /// Mark the stream as faulted. /// /// /// An representing the cause of the fault. /// internal void Fault(Exception exception) { if (exception == null) throw new ArgumentNullException(nameof(exception)); using (_mutex.Lock()) { if (IsDisposed) return; if (_completion == null) { _completion = Task.FromException(exception); Log.LogTrace("Marked read stream {StreamIndex} as faulted ({ExceptionType}).", StreamIndex, exception.GetType().FullName); } } } /// /// Consume the a pending read, removing it from the queue. /// /// /// The must be at the head of the queue. /// void Consume(PendingRead pending) { if (pending == null) throw new ArgumentNullException(nameof(pending)); PendingRead consumed; bool wasConsumed = _pendingReads.TryDequeue(out consumed); Debug.Assert(wasConsumed, "Attempted to consume pending read when none was available."); // AF: This should not happen; if it does, then I've fucked up somewhere and we have a race condition. Debug.Assert(ReferenceEquals(consumed, pending), "Consumed a pending read that was not at the head of the queue." ); } /// /// Represents a pending read operation. /// class PendingRead { /// /// The data that will be returned by the pending read. /// ArraySegment _data; /// /// Create a new . /// /// /// The data that will be returned by the pending read. /// public PendingRead(ArraySegment data) { if (data.Array == null) throw new ArgumentNullException(nameof(data)); _data = data; } /// /// The number of bytes available to read. /// public int Count => _data.Count; /// /// Has the read buffer been exhausted? /// public bool IsEmpty => Count == 0; /// /// Drain the read-buffer into the specified buffer. /// /// /// The buffer to which data will be written. /// /// /// The offset within the buffer at which data will be written. /// /// /// The number of bytes written to the buffer. /// public int DrainTo(byte[] buffer, int offset) { int bytesAvailable = _data.Count; int bufferCapacity = buffer.Length - (offset + 1); if (bufferCapacity <= bytesAvailable) { // We still have data remaining. Array.Copy(_data.Array, _data.Offset, buffer, offset, bufferCapacity); _data = new ArraySegment(_data.Array, offset: _data.Offset + bufferCapacity, count: _data.Count - bufferCapacity ); return bufferCapacity; } // This is the last of our data; copy it all. Array.Copy(_data.Array, _data.Offset, buffer, offset, bytesAvailable); Release(); return bytesAvailable; } /// /// Release any the buffer (if any) held by the pending read. /// public void Release() { if (_data.Array != null) { ArrayPool.Shared.Return(_data.Array, clearArray: true); _data = ArraySegment.Empty; } } } } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/Streams/K8sMultiplexedWriteStream.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Buffers; using System.IO; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Extensions.WebSockets.Streams { /// /// Represents a single output substream within a Kubernetes-style multiplexed stream. /// sealed class K8sMultiplexedWriteStream : Stream { /// /// Create a new . /// /// /// The Kubernetes stream index of the target output stream. /// /// /// A delegate used to asynchronously send outgoing data. /// /// /// The used to create loggers for client components. /// public K8sMultiplexedWriteStream(byte streamIndex, Func, CancellationToken, Task> sendAsync, ILoggerFactory loggerFactory) { if (sendAsync == null) throw new ArgumentNullException(nameof(sendAsync)); StreamIndex = streamIndex; SendAsync = sendAsync; Log = loggerFactory.CreateLogger(); } /// /// The Kubernetes stream index of the target output stream. /// public byte StreamIndex { get; } /// /// A delegate used to asynchronously send outgoing data. /// public Func, CancellationToken, Task> SendAsync { get; } /// /// Does the stream support reading? /// public override bool CanRead => false; /// /// Does the stream support seeking? /// public override bool CanSeek => false; /// /// Does the stream support writing? /// public override bool CanWrite => true; /// /// The stream length (not supported). /// public override long Length => throw new NotSupportedException("The stream does not support seeking."); /// /// The stream position (not supported). /// public override long Position { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } /// /// The stream's log facility. /// ILogger Log { get; } /// /// Flush pending data (a no-op for this implementation). /// public override void Flush() { } /// /// Write data to the stream. /// /// /// A buffer containing the data to write. /// /// /// The offset, within the buffer, of the data to write. /// /// /// The number of bytes to write. /// public override void Write(byte[] buffer, int offset, int count) { SendAsync(StreamIndex, new ArraySegment(buffer, offset, count), CancellationToken.None) .GetAwaiter() .GetResult(); } /// /// Asynchronously write data to the stream (not supported). /// /// /// A buffer containing the data to write. /// /// /// The offset, within the buffer, of the data to write. /// /// /// The number of bytes to write. /// /// /// A that can be used to cancel the write operation. /// public override async Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) { await SendAsync(StreamIndex, new ArraySegment(buffer, offset, count), cancellationToken).ConfigureAwait(false); } /// /// Seek to the specified position in the stream (not supported). /// /// /// The seek offset, relative to the specified . /// /// /// The seek origin. /// /// /// The new stream position. /// public override long Seek(long offset, SeekOrigin origin) => throw new NotSupportedException("Stream does not support seeking."); /// /// Set the stream length (not supported). /// /// /// The new stream length. /// public override void SetLength(long value) => throw new NotSupportedException("Stream does not support seeking."); /// /// Read data from the stream (not supported). /// /// /// The buffer to which the incoming data will be written. /// /// /// The offset within the buffer to which data will be written. /// /// /// The maximum number of bytes to read. /// /// /// The number of bytes that were read from the stream. /// public override int Read(byte[] buffer, int offset, int count) => throw new NotSupportedException("Stream does not support reading."); } } ================================================ FILE: src/KubeClient.Extensions.WebSockets/Utilities.cs ================================================ using System; using System.Buffers; using System.Threading; namespace KubeClient.Extensions.WebSockets { /// /// Helper functions. /// static class Utilities { /// /// Create a new array segment, dropping the specified number of elements from the start of the array segment. /// /// /// The array segment. /// /// /// The number of elements to drop. /// /// /// The new array segment. /// public static ArraySegment DropLeft(this ArraySegment arraySegment, int count) { if (count > arraySegment.Count) throw new ArgumentOutOfRangeException(nameof(count), count, "Cannot drop more elements than the array segment contains."); return new ArraySegment(arraySegment.Array, offset: arraySegment.Offset + 1, count: arraySegment.Count - count ); } /// /// Create a new array segment, dropping the specified number of elements from the start of the array segment. /// /// /// The array segment. /// /// /// The number of elements to drop. /// /// /// The new array segment. /// public static ArraySegment DropRight(this ArraySegment arraySegment, int count) { if (count > arraySegment.Count) throw new ArgumentOutOfRangeException(nameof(count), count, "Cannot drop more elements than the array segment contains."); return new ArraySegment(arraySegment.Array, offset: arraySegment.Offset, count: arraySegment.Count - count ); } /// /// Create a new array segment containing the specified elements from the start of the array segment. /// /// /// The array segment. /// /// /// The number of elements the slice will contain. /// /// /// The new array segment. /// public static ArraySegment Slice(this ArraySegment arraySegment, int count) => arraySegment.Slice(arraySegment.Offset, count); /// /// Create a new array segment containing the specified elements from the array segment. /// /// /// The array segment. /// /// /// The offset, within the array segment, where the slice will start. /// /// /// The number of elements the slice will contain. /// /// /// The new array segment. /// public static ArraySegment Slice(this ArraySegment arraySegment, int offset, int count) { if (offset < 0 || offset >= arraySegment.Count) throw new ArgumentOutOfRangeException(nameof(offset), offset, "Offset must be within the bounds of the array."); if ((offset + count) > arraySegment.Count) throw new ArgumentOutOfRangeException(nameof(count), count, "Slice cannot contain more elements than the source array segment."); return new ArraySegment(arraySegment.Array, offset, count); } /// /// Return the underlying array to the shared pool. /// /// /// The array segment. /// /// /// Initialise the array's elements to their default values? /// /// /// . /// public static ArraySegment Release(this ArraySegment arraySegment, bool clearArray = false) { if (arraySegment.Array != null) ArrayPool.Shared.Return(arraySegment.Array, clearArray); return ArraySegment.Empty; } /// /// Block the current thread until the receives a signal or the specified is canceled. /// /// /// The . /// /// /// A can can be used to cancel the wait. /// /// /// true, if the received a signal; false, if the is canceled. /// public static bool WaitOne(this WaitHandle waitHandle, CancellationToken cancellation) { if (!cancellation.CanBeCanceled) // e.g. CancellationToken.None. return waitHandle.WaitOne(); int signaledHandleIndex = WaitHandle.WaitAny(new[] { waitHandle, cancellation.WaitHandle }); return signaledHandleIndex == 0; // WaitAny returns the index of the signaled wait handle. } /// /// Block the current thread until the receives a signal, the specified timeout period has elapsed, or the specified is canceled. /// /// /// The . /// /// /// The span of time to wait for a signal. /// /// /// A can can be used to cancel the wait. /// /// /// true, if the received a signal; false, if the expires or the is canceled. /// public static bool WaitOne(this WaitHandle waitHandle, TimeSpan timeout, CancellationToken cancellation) { if (!cancellation.CanBeCanceled) // e.g. CancellationToken.None. return waitHandle.WaitOne(timeout); int signaledHandleIndex = WaitHandle.WaitAny(new[] { waitHandle, cancellation.WaitHandle }, timeout); return signaledHandleIndex == 0; // WaitAny returns the index of the signaled wait handle. } } } ================================================ FILE: src/KubeClient.Http/AssemblyVisiblity.cs ================================================ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("KubeClient.Tests")] ================================================ FILE: src/KubeClient.Http/ClientExtensions.Streamed.cs ================================================ using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Http { /// /// Invocation-related extension methods for s that use an . /// public static partial class ClientExtensions { #region Invoke (streamed) /// /// Asynchronously execute a request as a streamed HTTP GET. /// /// /// The HTTP client. /// /// /// The to execute. /// /// /// An optional that can be used to cancel the request. /// /// /// An representing the response. /// public static async Task GetStreamedAsync(this HttpClient httpClient, HttpRequest request, CancellationToken cancellationToken = default) { using (HttpRequestMessage requestMessage = request.BuildRequestMessage(HttpMethod.Get, baseUri: httpClient.BaseAddress)) { requestMessage.MarkAsStreamed(); return await httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead); } } #endregion // Invoke (streamed) } } ================================================ FILE: src/KubeClient.Http/ClientExtensions.cs ================================================ using System; using System.Collections.Generic; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Http { /// /// Invocation-related extension methods for s that use an . /// public static partial class ClientExtensions { #region Invoke /// /// Asynchronously execute a request as an HTTP HEAD. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task HeadAsync(this HttpClient httpClient, HttpRequest request, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Head, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP GET. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task GetAsync(this HttpClient httpClient, HttpRequest request, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Get, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP POST. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// Optional representing the request body. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PostAsync(this HttpClient httpClient, HttpRequest request, HttpContent postBody = null, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Post, postBody, cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP PUT. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// representing the request body. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PutAsync(this HttpClient httpClient, HttpRequest request, HttpContent putBody, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); if (putBody == null) throw new ArgumentNullException(nameof(putBody)); return await httpClient.SendAsync(request, HttpMethod.Put, putBody, cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP PATCH. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// representing the request body. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PatchAsync(this HttpClient httpClient, HttpRequest request, HttpContent patchBody, CancellationToken cancellationToken = default) { if (request == null) throw new ArgumentNullException(nameof(request)); if (patchBody == null) throw new ArgumentNullException(nameof(patchBody)); return await httpClient.SendAsync(request, OtherHttpMethods.Patch, patchBody, cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP DELETE. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task DeleteAsync(this HttpClient httpClient, HttpRequest request, CancellationToken cancellationToken = default) { if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Delete, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute the request using the specified HTTP method. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An representing the method to use. /// /// /// Optional representing the request body (if any). /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task SendAsync(this HttpClient httpClient, HttpRequest request, HttpMethod method, HttpContent body = null, CancellationToken cancellationToken = default) { if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(method, body, httpClient.BaseAddress)) { HttpResponseMessage responseMessage = await httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); try { request.ExecuteResponseActions(responseMessage); } catch { using (responseMessage) { throw; } } return responseMessage; } } #endregion // Invoke #region Helpers /// /// Execute the request's configured response actions (if any) against the specified response message. /// /// /// The . /// /// /// The HTTP response message. /// static void ExecuteResponseActions(this HttpRequest request, HttpResponseMessage responseMessage) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); List responseActionExceptions = new List(); foreach (ResponseAction responseAction in request.ResponseActions) { try { responseAction(responseMessage, HttpRequest.DefaultContext); } catch (Exception eResponseAction) { responseActionExceptions.Add(eResponseAction); } } if (responseActionExceptions.Count > 0) throw new AggregateException("One or more errors occurred while processing the response message.", responseActionExceptions); } #endregion // Helpers } } ================================================ FILE: src/KubeClient.Http/Clients/ClientBuilder.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using System.Net.Http; namespace KubeClient.Http.Clients { using Utilities; /// /// Builds s with pipelines of HTTP message handlers. /// /// /// Be aware that, if you return singleton instances of message handlers from factory delegates, those handlers will be disposed if the factory encounters any exception while creating a client. /// public sealed class ClientBuilder { /// /// The default factory for message-pipeline terminus handlers. /// static readonly Func DefaultMessagePipelineTerminus = existingHandler => new HttpClientHandler(); /// /// The default list of configurator delegates for message-pipeline terminus handlers. /// static readonly ImmutableList> DefaultPipelineTerminusConfigurators = ImmutableList.Create(DefaultMessagePipelineTerminus); /// /// Factory delegates used to produce the HTTP message handlers that comprise client pipelines. /// ImmutableList> _handlerFactories = ImmutableList>.Empty; /// /// Delegates to create or modify the that will form the message pipeline terminus. /// /// /// Each delegate is passed the result of the previous delegate (if any). /// /// Can be overridden by the value passed to CreateClient. /// ImmutableList> _pipelineTerminusConfigurators = DefaultPipelineTerminusConfigurators; /// /// Create a new HTTP client builder. /// public ClientBuilder() { } /// /// Create a new HTTP client builder. /// /// /// The HTTP client buider to copy configuration from. /// ClientBuilder(ClientBuilder copyFrom) { if (copyFrom == null) throw new ArgumentNullException(nameof(copyFrom)); _handlerFactories = copyFrom._handlerFactories; _pipelineTerminusConfigurators = copyFrom._pipelineTerminusConfigurators; } /// /// Does the specify a custom handler for the terminus of the message-hander pipeline. /// public bool HasCustomPipelineTerminus => _pipelineTerminusConfigurators != DefaultPipelineTerminusConfigurators; /// /// Create an using the configured message-handler pipeline. /// /// /// An optional base URI for the . /// /// /// An optional that will form the message pipeline terminus. /// /// If not specified, the pre-configured message pipeline terminus is used. /// /// /// The new . /// public HttpClient CreateClient(Uri baseUri = null, HttpMessageHandler messagePipelineTerminus = null) { HttpMessageHandler pipelineTerminus = null; IReadOnlyList pipelineHandlers = null; HttpMessageHandler pipeline = null; HttpClient client = null; try { pipelineTerminus = messagePipelineTerminus ?? BuildPipelineTerminus(); pipelineHandlers = CreatePipelineHandlers(); pipeline = CreatePipeline(pipelineTerminus, pipelineHandlers); client = new HttpClient(pipeline); if (baseUri != null) client.BaseAddress = baseUri; } catch { using (pipelineTerminus) using (pipelineHandlers?.ToAggregateDisposable()) using (pipeline) using (client) { throw; } } return client; } /// /// Build / configure an HTTP message handler to act as the message pipeline terminus. /// /// /// The initial to use as the pipeline terminus (this is optional, and may ignored by the 's configuration). /// /// /// The configured . /// public HttpMessageHandler BuildPipelineTerminus(HttpMessageHandler initialPipelineTerminus = null) { HttpMessageHandler pipelineTerminus = initialPipelineTerminus; foreach (Func terminusConfiguration in _pipelineTerminusConfigurators) pipelineTerminus = terminusConfiguration(pipelineTerminus); if (pipelineTerminus == null) throw new InvalidOperationException("One or more configuration delegates for the message pipeline terminus returned null."); return pipelineTerminus; } /// /// Create non-terminal message pipeline handlers (if any). /// /// /// A list of message handlers. /// /// /// The returned handlers are not chained together via (this is done by ) and the list does not include the pipeline terminus. /// public List CreatePipelineHandlers() { List pipelineHandlers = new List(); try { foreach (Func handlerFactory in _handlerFactories) { DelegatingHandler currentHandler = null; try { currentHandler = handlerFactory(); } catch { using (currentHandler) throw; } pipelineHandlers.Add(currentHandler); } } catch { using (pipelineHandlers.ToAggregateDisposable()) { throw; } } return pipelineHandlers; } /// /// Create a copy of the , but with the specified configuration for its message pipeline terminus. /// /// /// A delegate that creates the for each that will form its message pipeline terminus. /// /// If null, the default message handler pipeline terminus will be used. /// /// /// The configured . /// public ClientBuilder WithMessagePipelineTerminus(Func pipelineTerminusConfigurator) { return new ClientBuilder(this) { _pipelineTerminusConfigurators = _pipelineTerminusConfigurators.Add( pipelineTerminusConfigurator ?? DefaultMessagePipelineTerminus ) }; } /// /// Create a copy of the , but with the specified message pipeline terminus. /// /// /// A delegate that creates the for each that will form its message pipeline terminus. /// /// If null, the default message handler pipeline terminus will be used. /// /// /// The configured . /// public ClientBuilder WithMessagePipelineTerminus(Func pipelineTerminusFactory) { Func configurator = DefaultMessagePipelineTerminus; if (pipelineTerminusFactory != null) configurator = _ => pipelineTerminusFactory(); return new ClientBuilder(this) { _pipelineTerminusConfigurators = ImmutableList.Create(configurator) // Replaces any existing configurators. }; } /// /// Create a copy of the , but with the default message pipeline terminus. /// /// /// The configured . /// public ClientBuilder WithDefaultMessagePipelineTerminus() { return new ClientBuilder(this) { _pipelineTerminusConfigurators = DefaultPipelineTerminusConfigurators }; } /// /// Create a copy of the , adding an HTTP message-handler factory to the end of the pipeline. /// /// /// The handler type. /// /// /// The message-handler factory. /// /// /// The (enables method-chaining). /// /// /// cannot be the base class. /// public ClientBuilder AddHandler(Func handlerFactory) where THandler : DelegatingHandler { if (handlerFactory == null) throw new ArgumentNullException(nameof(handlerFactory)); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (_handlerFactories.OfType>().Any()) { throw new InvalidOperationException( String.Format( "The configured handler pipeline already contains a factory for message-handlers of type '{0}'.", typeof(THandler).AssemblyQualifiedName ) ); } return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Add(handlerFactory) }; } /// /// Create a copy of the , inserting an HTTP message-handler factory to the pipeline before the factory that produces handlers of the specified type. /// /// /// The handler type. /// /// /// The type of handler before whose factory the new handler factory should be inserted. /// /// /// The message-handler factory. /// /// /// Throw an if no factory for is present? /// /// Default is false. /// /// /// The (enables method-chaining). /// /// /// and cannot be the base class. /// public ClientBuilder AddHandlerBefore(Func handlerFactory, bool throwIfNotPresent = false) where THandler : DelegatingHandler where TBeforeHandler : DelegatingHandler { if (handlerFactory == null) throw new ArgumentNullException(nameof(handlerFactory)); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (_handlerFactories.OfType>().Any()) { throw new InvalidOperationException( String.Format( "The configured handler pipeline already contains a factory for message-handlers of type '{0}'.", typeof(THandler).AssemblyQualifiedName ) ); } Type beforeHandlerFactoryType = typeof(Func); for (int handlerIndex = 0; handlerIndex < _handlerFactories.Count; handlerIndex++) { if (_handlerFactories[handlerIndex].GetType() == beforeHandlerFactoryType) { return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Insert(handlerIndex, handlerFactory) }; } } if (throwIfNotPresent) { throw new InvalidOperationException( String.Format( "Cannot insert factory for message-handlers of type '{0}' before the factory for message-handlers of type '{1}' (the pipeline does not contain a factory for message-handlers of this type.", typeof(THandler).AssemblyQualifiedName, typeof(TBeforeHandler).AssemblyQualifiedName ) ); } // TBefore is not present, so just append to the end of the pipeline. return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Add(handlerFactory) }; } /// /// Create a copy of the , inserting an HTTP message-handler factory to the pipeline after the factory that produces handlers of the specified type. /// /// /// The handler type. /// /// /// The type of handler after whose factory the new handler factory should be inserted. /// /// /// The message-handler factory. /// /// /// Throw an if no factory for is present? /// /// Default is false. /// /// /// The (enables method-chaining). /// /// /// and cannot be the base class. /// public ClientBuilder AddHandlerAfter(Func handlerFactory, bool throwIfNotPresent = false) where THandler : DelegatingHandler where TAfterHandler : DelegatingHandler { if (handlerFactory == null) throw new ArgumentNullException(nameof(handlerFactory)); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (_handlerFactories.OfType>().Any()) { throw new InvalidOperationException( String.Format( "The configured handler pipeline already contains a factory for message-handlers of type '{0}'.", typeof(THandler).AssemblyQualifiedName ) ); } Type afterHandlerFactoryType = typeof(Func); for (int handlerIndex = 0; handlerIndex < _handlerFactories.Count; handlerIndex++) { if (_handlerFactories[handlerIndex].GetType() == afterHandlerFactoryType) { return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Insert(handlerIndex + 1, handlerFactory) }; } } if (throwIfNotPresent) { throw new InvalidOperationException( String.Format( "Cannot insert factory for message-handlers of type '{0}' after the factory for message-handlers of type '{1}' (the pipeline does not contain a factory for message-handlers of this type.", typeof(THandler).AssemblyQualifiedName, typeof(TAfterHandler).AssemblyQualifiedName ) ); } // TAfter is not present, so just append to the end of the pipeline. return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Add(handlerFactory) }; } /// /// Enumerate the types of handlers configured in the factory's pipeline. /// /// /// A sequence of 0 or more types. /// /// /// This operation uses Reflection, so it can be relatively expensive; use sparingly. /// public IEnumerable EnumerateHandlerTypes() { for (int handlerIndex = 0; handlerIndex < _handlerFactories.Count; handlerIndex++) { Func factory = _handlerFactories[handlerIndex]; Type factoryDelegateType = factory.GetType(); yield return factoryDelegateType.GenericTypeArguments[0]; } } /// /// Create an HTTP message-handler pipeline. /// /// /// An representing the terminus of the pipeline. /// /// /// A sequence of s representing additional steps in the pipeline. /// /// /// An representing the head of the pipeline. /// public static HttpMessageHandler CreatePipeline(HttpMessageHandler pipelineTerminus, IEnumerable pipelineHandlers) { if (pipelineTerminus == null) throw new ArgumentNullException(nameof(pipelineTerminus)); if (pipelineHandlers == null) throw new ArgumentNullException(nameof(pipelineHandlers)); HttpMessageHandler pipeline = pipelineTerminus; foreach (DelegatingHandler pipelineHandler in pipelineHandlers.Reverse()) { pipelineHandler.InnerHandler = pipeline; pipeline = pipelineHandler; } return pipeline; } } } ================================================ FILE: src/KubeClient.Http/Clients/ClientBuilderExtensions.Typed.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Net.Security; using System.Security.Cryptography.X509Certificates; namespace KubeClient.Http.Clients { /// /// General-purpose extensions for and . /// public static partial class ClientBuilderExtensions { /// /// Create a new with the specified credentials. /// /// /// The type that contains contextual information used when creating the client. /// /// /// The that contains contextual information used when creating the client. /// /// /// The HTTP client builder. /// /// /// The base URI for the HTTP client. /// /// /// The client credentials used for authentication. /// /// /// The new . /// public static HttpClient CreateClient(this ClientBuilder clientBuilder, TContext context, Uri baseUri, ICredentials credentials) { HttpClientHandler clientHandler = null; try { clientHandler = new HttpClientHandler { Credentials = credentials }; return clientBuilder.CreateClient(context, baseUri, clientHandler); } catch (Exception) { using (clientHandler) { throw; } } } /// /// Create a new with the specified credentials. /// /// /// The type that contains contextual information used when creating the client. /// /// /// The that contains contextual information used when creating the client. /// /// /// The HTTP client builder. /// /// /// The base URI for the HTTP client. /// /// /// The client credentials used for authentication. /// /// /// The new . /// public static HttpClient CreateClient(this ClientBuilder clientBuilder, TContext context, string baseUri, ICredentials credentials) { HttpClientHandler clientHandler = null; try { clientHandler = new HttpClientHandler { Credentials = credentials }; return clientBuilder.CreateClient(context, baseUri, clientHandler); } catch (Exception) { using (clientHandler) { throw; } } } /// /// Create a new . /// /// /// The type that contains contextual information used when creating the client. /// /// /// The that contains contextual information used when creating the client. /// /// /// The HTTP client builder. /// /// /// The base URI for the HTTP client. /// /// /// An optional that will form the message pipeline terminus. /// /// If not specified, a new is used. /// /// /// The new . /// public static HttpClient CreateClient(this ClientBuilder clientBuilder, TContext context, string baseUri, HttpMessageHandler messagePipelineTerminus = null) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (String.IsNullOrWhiteSpace(baseUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'baseUri'.", nameof(baseUri)); return clientBuilder.CreateClient( context, new Uri(baseUri, UriKind.Absolute), messagePipelineTerminus ); } /// /// Register a message handler type for the pipeline used by clients created by the factory. /// /// /// The message handler type. /// /// Must be a sub-type of (not itself). /// /// /// The type that contains contextual information used when creating the handler. /// /// /// The HTTP client builder. /// /// /// The client factory (enables inline use / method chaining). /// public static ClientBuilder WithMessageHandler(this ClientBuilder clientBuilder) where TMessageHandler : DelegatingHandler, new() { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (typeof(TMessageHandler) == DelegatingHandlerType) throw new NotSupportedException("TMessageHandler must be a sub-type of DelegatingHandler (it cannot be DelegatingHandler)."); clientBuilder.AddHandler( context => new TMessageHandler() ); return clientBuilder; } /// /// Create a copy of the , but with the specified configuration action for its (message pipeline terminus). /// /// /// The HTTP client builder. /// /// /// A delegate that configures the that will form the message pipeline terminus for each produced by the builder. /// /// /// The configured . /// public static ClientBuilder ConfigureHttpClientHandler(this ClientBuilder clientBuilder, Action clientHandlerConfigurator) { if (clientHandlerConfigurator == null) throw new ArgumentNullException(nameof(clientHandlerConfigurator)); return clientBuilder.ConfigureMessagePipelineTerminus(clientHandlerConfigurator); } /// /// Create a copy of the , but with the specified configuration action for its message pipeline terminus. /// /// /// The type of message handler to expect / configure. /// /// /// The type that contains contextual information used when creating the pipeline terminus. /// /// /// The HTTP client builder. /// /// /// A delegate that configures the that will form the message pipeline terminus for each produced by the builder. /// /// /// The configured . /// public static ClientBuilder ConfigureMessagePipelineTerminus(this ClientBuilder clientBuilder, Action pipelineTerminusConfigurator) where TMessageHandler : HttpMessageHandler { if (pipelineTerminusConfigurator == null) throw new ArgumentNullException(nameof(pipelineTerminusConfigurator)); return clientBuilder.WithMessagePipelineTerminus((existingTerminator, context) => { if (existingTerminator == null) throw new InvalidOperationException($"Cannot configure pipeline terminus (expected a handler of type '{typeof(TMessageHandler).FullName}', but the previous factory function returned null)."); if (existingTerminator is TMessageHandler typedHandler) pipelineTerminusConfigurator(typedHandler, context); else throw new InvalidOperationException($"Cannot configure pipeline terminus (expected a handler of type '{typeof(TMessageHandler).FullName}', but the previous factory function returned a handler of type '{existingTerminator.GetType().FullName}')."); return existingTerminator; }); } /// /// Create a copy of the , but using the specified X.509 certificate for client authentication. /// /// /// The type that contains contextual information used when creating the client. /// /// /// The HTTP client builder. /// /// /// The X.509 certificate to use. /// /// /// The configured . /// public static ClientBuilder WithClientCertificate(this ClientBuilder clientBuilder, X509Certificate2 clientCertificate) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (clientCertificate == null) throw new ArgumentNullException(nameof(clientCertificate)); if (!clientCertificate.HasPrivateKey) throw new InvalidOperationException($"Cannot use certificate '{clientCertificate.Subject}' as a client certificate (no private key is not available for it)."); return clientBuilder.ConfigureHttpClientHandler((clientHandler, context) => { clientHandler.ClientCertificates.Add(clientCertificate); clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual; }); } /// /// Create a copy of the , but using the specified X.509 certificate for server authentication. /// /// /// The HTTP client builder. /// /// /// The X.509 certificate to expect the server to use. /// /// /// An optional delegate called if an unexpected error is encountered while validating the server certificate. /// /// Use this delegate to log the error. /// /// /// The configured . /// /// /// Will accept the certificate or (if it's a CA certificate) any certificate issued by it. /// public static ClientBuilder WithServerCertificate(this ClientBuilder clientBuilder, X509Certificate2 expectServerCertificate, Action logError = null) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (expectServerCertificate == null) throw new ArgumentNullException(nameof(expectServerCertificate)); return clientBuilder.ConfigureHttpClientHandler((clientHandler, context) => { clientHandler.ServerCertificateCustomValidationCallback = (request, certificate, chain, sslPolicyErrors) => { if (sslPolicyErrors != SslPolicyErrors.RemoteCertificateChainErrors) return false; try { using (X509Chain certificateChain = new X509Chain()) { certificateChain.ChainPolicy.ExtraStore.Add(expectServerCertificate); certificateChain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; certificateChain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; return certificateChain.Build(certificate); } } catch (Exception chainException) { if (logError != null) logError(chainException); return false; } }; }); } /// /// Create a copy of the , but with verification of the server's SSL certificate disabled (useful when the server has a self-signed certificate). /// /// /// The HTTP client builder. /// /// /// The configured . /// /// /// Will accept any certificate. /// public static ClientBuilder AcceptAnyServerCertificate(this ClientBuilder clientBuilder) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); return clientBuilder.ConfigureHttpClientHandler((clientHandler, context) => { clientHandler.ServerCertificateCustomValidationCallback = (request, certificate, chain, sslPolicyErrors) => { return true; // Verification disabled. }; }); } } } ================================================ FILE: src/KubeClient.Http/Clients/ClientBuilderExtensions.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Net.Security; using System.Security.Cryptography.X509Certificates; namespace KubeClient.Http.Clients { /// /// General-purpose extensions for and . /// public static partial class ClientBuilderExtensions { /// /// The CLR type. /// static readonly Type DelegatingHandlerType = typeof(DelegatingHandler); /// /// Create a new with the specified credentials. /// /// /// The HTTP client builder. /// /// /// The base URI for the HTTP client. /// /// /// The client credentials used for authentication. /// /// /// The new . /// public static HttpClient CreateClient(this ClientBuilder clientBuilder, Uri baseUri, ICredentials credentials) { HttpClientHandler clientHandler = null; try { clientHandler = new HttpClientHandler { Credentials = credentials }; return clientBuilder.CreateClient(baseUri, clientHandler); } catch (Exception) { using (clientHandler) { throw; } } } /// /// Create a new . /// /// /// The HTTP client builder. /// /// /// The base URI for the HTTP client. /// /// /// The client credentials used for authentication. /// /// /// The new . /// public static HttpClient CreateClient(this ClientBuilder clientBuilder, string baseUri, ICredentials credentials) { HttpClientHandler clientHandler = null; try { clientHandler = new HttpClientHandler { Credentials = credentials }; return clientBuilder.CreateClient(baseUri, clientHandler); } catch (Exception) { using (clientHandler) { throw; } } } /// /// Create a new . /// /// /// The HTTP client builder. /// /// /// The base URI for the HTTP client. /// /// /// An optional that will form the message pipeline terminus. /// /// If not specified, a new is used. /// /// /// The new . /// public static HttpClient CreateClient(this ClientBuilder clientBuilder, string baseUri, HttpMessageHandler messagePipelineTerminus = null) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (String.IsNullOrWhiteSpace(baseUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'baseUri'.", nameof(baseUri)); return clientBuilder.CreateClient( new Uri(baseUri, UriKind.Absolute), messagePipelineTerminus ); } /// /// Register a message handler type for the pipeline used by clients created by the factory. /// /// /// The message handler type. /// /// Must be a sub-type of (not itself). /// /// /// The HTTP client builder. /// /// /// The client factory (enables inline use / method chaining). /// public static ClientBuilder WithMessageHandler(this ClientBuilder clientBuilder) where TMessageHandler : DelegatingHandler, new() { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (typeof(TMessageHandler) == DelegatingHandlerType) throw new NotSupportedException("TMessageHandler must be a sub-type of DelegatingHandler (it cannot be DelegatingHandler)."); clientBuilder.AddHandler( () => new TMessageHandler() ); return clientBuilder; } /// /// Create a copy of the , but with the specified configuration action for its (message pipeline terminus). /// /// /// The HTTP client builder. /// /// /// A delegate that configures the that will form the message pipeline terminus for each produced by the builder. /// /// /// The configured . /// public static ClientBuilder ConfigureHttpClientHandler(this ClientBuilder clientBuilder, Action clientHandlerConfigurator) { if (clientHandlerConfigurator == null) throw new ArgumentNullException(nameof(clientHandlerConfigurator)); return clientBuilder.ConfigureMessagePipelineTerminus(clientHandlerConfigurator); } /// /// Create a copy of the , but with the specified configuration action for its message pipeline terminus. /// /// /// The type of message handler to expect / configure. /// /// /// The HTTP client builder. /// /// /// A delegate that configures the that will form the message pipeline terminus for each produced by the builder. /// /// /// The configured . /// public static ClientBuilder ConfigureMessagePipelineTerminus(this ClientBuilder clientBuilder, Action pipelineTerminusConfigurator) where TMessageHandler : HttpMessageHandler { if (pipelineTerminusConfigurator == null) throw new ArgumentNullException(nameof(pipelineTerminusConfigurator)); return clientBuilder.WithMessagePipelineTerminus(existingTerminator => { if (existingTerminator == null) throw new InvalidOperationException($"Cannot configure pipeline terminus (expected a handler of type '{typeof(TMessageHandler).FullName}', but the previous factory function returned null)."); if (existingTerminator is TMessageHandler typedHandler) pipelineTerminusConfigurator(typedHandler); else throw new InvalidOperationException($"Cannot configure pipeline terminus (expected a handler of type '{typeof(TMessageHandler).FullName}', but the previous factory function returned a handler of type '{existingTerminator.GetType().FullName}')."); return existingTerminator; }); } /// /// Create a copy of the , but using the specified X.509 certificate for client authentication. /// /// /// The HTTP client builder. /// /// /// The X.509 certificate to use. /// /// /// The configured . /// public static ClientBuilder WithClientCertificate(this ClientBuilder clientBuilder, X509Certificate2 clientCertificate) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (clientCertificate == null) throw new ArgumentNullException(nameof(clientCertificate)); if (!clientCertificate.HasPrivateKey) throw new InvalidOperationException($"Cannot use certificate '{clientCertificate.Subject}' as a client certificate (no private key is not available for it)."); return clientBuilder.ConfigureHttpClientHandler(clientHandler => { clientHandler.ClientCertificates.Add(clientCertificate); clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual; }); } /// /// Create a copy of the , but using the specified X.509 certificate for server authentication. /// /// /// The HTTP client builder. /// /// /// The X.509 certificate to expect the server to use. /// /// /// An optional delegate called if an unexpected error is encountered while validating the server certificate. /// /// Use this delegate to log the error. /// /// /// The configured . /// /// /// Will accept the certificate or (if it's a CA certificate) any certificate issued by it. /// public static ClientBuilder WithServerCertificate(this ClientBuilder clientBuilder, X509Certificate2 expectServerCertificate, Action logError = null) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); if (expectServerCertificate == null) throw new ArgumentNullException(nameof(expectServerCertificate)); return clientBuilder.ConfigureHttpClientHandler(clientHandler => { clientHandler.ServerCertificateCustomValidationCallback = (request, certificate, chain, sslPolicyErrors) => { if (sslPolicyErrors != SslPolicyErrors.RemoteCertificateChainErrors) return false; try { using (X509Chain certificateChain = new X509Chain()) { certificateChain.ChainPolicy.ExtraStore.Add(expectServerCertificate); certificateChain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; certificateChain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; return certificateChain.Build(certificate); } } catch (Exception chainException) { if (logError != null) logError(chainException); return false; } }; }); } /// /// Create a copy of the , but with verification of the server's SSL certificate disabled (useful when the server has a self-signed certificate). /// /// /// The HTTP client builder. /// /// /// The configured . /// /// /// Will accept any certificate. /// public static ClientBuilder AcceptAnyServerCertificate(this ClientBuilder clientBuilder) { if (clientBuilder == null) throw new ArgumentNullException(nameof(clientBuilder)); return clientBuilder.ConfigureHttpClientHandler(clientHandler => { clientHandler.ServerCertificateCustomValidationCallback = (request, certificate, chain, sslPolicyErrors) => { return true; // Verification disabled. }; }); } } } ================================================ FILE: src/KubeClient.Http/Clients/ClientBuilderOfTContext.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using System.Net.Http; namespace KubeClient.Http.Clients { using Utilities; /// /// Builds s with pipelines of HTTP message handlers. /// /// /// Unlike , provides a that can be passed to its configuration delegates. /// /// Be aware that, if you return singleton instances of message handlers from factory delegates, those handlers will be disposed if the factory encounters any exception while creating a client. /// public sealed class ClientBuilder { /// /// The default factory for message-pipeline terminus handlers. /// static readonly Func DefaultMessagePipelineTerminus = (existingHandler, context) => new HttpClientHandler(); /// /// The default list of configurator delegates for message-pipeline terminus handlers. /// static readonly ImmutableList> DefaultPipelineTerminusConfigurators = ImmutableList.Create(DefaultMessagePipelineTerminus); /// /// Factory delegates used to produce the HTTP message handlers that comprise client pipelines. /// ImmutableList> _handlerFactories = ImmutableList>.Empty; /// /// Delegates to create or modify the that will form the message pipeline terminus. /// /// /// Each delegate is passed the result of the previous delegate (if any). /// /// Can be overridden by the value passed to CreateClient. /// ImmutableList> _pipelineTerminusConfigurators = DefaultPipelineTerminusConfigurators; /// /// Create a new HTTP client builder. /// public ClientBuilder() { } /// /// Create a new HTTP client builder. /// /// /// The HTTP client buider to copy configuration from. /// ClientBuilder(ClientBuilder copyFrom) { if (copyFrom == null) throw new ArgumentNullException(nameof(copyFrom)); _handlerFactories = copyFrom._handlerFactories; _pipelineTerminusConfigurators = copyFrom._pipelineTerminusConfigurators; } /// /// Does the specify a custom handler for the terminus of the message-hander pipeline. /// public bool HasCustomPipelineTerminus => _pipelineTerminusConfigurators != DefaultPipelineTerminusConfigurators; /// /// Create an using the configured message-handler pipeline. /// /// /// The that contains contextual information used when creating the client and its pipeline. /// /// /// An optional base URI for the . /// /// /// An optional that will form the message pipeline terminus. /// /// If not specified, the pre-configured message pipeline terminus is used. /// /// /// The new . /// public HttpClient CreateClient(TContext context, Uri baseUri = null, HttpMessageHandler messagePipelineTerminus = null) { HttpMessageHandler pipelineTerminus = null; IReadOnlyList pipelineHandlers = null; HttpMessageHandler pipeline = null; HttpClient client = null; try { pipelineTerminus = messagePipelineTerminus ?? BuildPipelineTerminus(context); pipelineHandlers = CreatePipelineHandlers(context); pipeline = ClientBuilder.CreatePipeline(pipelineTerminus, pipelineHandlers); client = new HttpClient(pipeline); if (baseUri != null) client.BaseAddress = baseUri; } catch { using (pipelineTerminus) using (pipelineHandlers?.ToAggregateDisposable()) using (pipeline) using (client) { throw; } } return client; } /// /// Build / configure an HTTP message handler to act as the message pipeline terminus. /// /// /// The that contains contextual information used when creating the handler. /// /// /// The initial to use as the pipeline terminus (this is optional, and may ignored by the 's configuration). /// /// /// The configured . /// public HttpMessageHandler BuildPipelineTerminus(TContext context, HttpMessageHandler initialPipelineTerminus = null) { HttpMessageHandler pipelineTerminus = initialPipelineTerminus; foreach (Func terminusConfiguration in _pipelineTerminusConfigurators) pipelineTerminus = terminusConfiguration(pipelineTerminus, context); if (pipelineTerminus == null) throw new InvalidOperationException("One or more configuration delegates for the message pipeline terminus returned null."); return pipelineTerminus; } /// /// Create non-terminal message pipeline handlers (if any). /// /// /// The that contains contextual information used when creating the handlers. /// /// /// A list of message handlers. /// /// /// The returned handlers are not chained together via (this is done by ) and the list does not include the pipeline terminus. /// public List CreatePipelineHandlers(TContext context) { List pipelineHandlers = new List(); try { foreach (Func handlerFactory in _handlerFactories) { DelegatingHandler currentHandler = null; try { currentHandler = handlerFactory(context); } catch { using (currentHandler) throw; } pipelineHandlers.Add(currentHandler); } } catch { using (pipelineHandlers.ToAggregateDisposable()) { throw; } } return pipelineHandlers; } /// /// Create a copy of the , but with the specified configuration for its message pipeline terminus. /// /// /// A delegate that creates the for each that will form its message pipeline terminus. /// /// If null, the default message handler pipeline terminus will be used. /// /// /// The configured . /// public ClientBuilder WithMessagePipelineTerminus(Func pipelineTerminusConfigurator) { return new ClientBuilder(this) { _pipelineTerminusConfigurators = _pipelineTerminusConfigurators.Add( pipelineTerminusConfigurator ?? DefaultMessagePipelineTerminus ) }; } /// /// Create a copy of the , but with the specified message pipeline terminus. /// /// /// A delegate that creates the for each that will form its message pipeline terminus. /// /// If null, the default message handler pipeline terminus will be used. /// /// /// The configured . /// public ClientBuilder WithMessagePipelineTerminus(Func pipelineTerminusFactory) { Func configurator = DefaultMessagePipelineTerminus; if (pipelineTerminusFactory != null) configurator = (_, context) => pipelineTerminusFactory(context); return new ClientBuilder(this) { _pipelineTerminusConfigurators = ImmutableList.Create(configurator) // Replaces any existing configurators. }; } /// /// Create a copy of the , but with the default message pipeline terminus. /// /// /// The configured . /// public ClientBuilder WithDefaultMessagePipelineTerminus() { return new ClientBuilder(this) { _pipelineTerminusConfigurators = DefaultPipelineTerminusConfigurators }; } /// /// Create a copy of the , adding an HTTP message-handler factory to the end of the pipeline. /// /// /// The handler type. /// /// /// The message-handler factory. /// /// /// The (enables method-chaining). /// /// /// cannot be the base class. /// public ClientBuilder AddHandler(Func handlerFactory) where THandler : DelegatingHandler { if (handlerFactory == null) throw new ArgumentNullException(nameof(handlerFactory)); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (_handlerFactories.OfType>().Any()) { throw new InvalidOperationException( String.Format( "The configured handler pipeline already contains a factory for message-handlers of type '{0}'.", typeof(THandler).AssemblyQualifiedName ) ); } return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Add(handlerFactory) }; } /// /// Create a copy of the , inserting an HTTP message-handler factory to the pipeline before the factory that produces handlers of the specified type. /// /// /// The handler type. /// /// /// The type of handler before whose factory the new handler factory should be inserted. /// /// /// The message-handler factory. /// /// /// Throw an if no factory for is present? /// /// Default is false. /// /// /// The (enables method-chaining). /// /// /// and cannot be the base class. /// public ClientBuilder AddHandlerBefore(Func handlerFactory, bool throwIfNotPresent = false) where THandler : DelegatingHandler where TBeforeHandler : DelegatingHandler { if (handlerFactory == null) throw new ArgumentNullException(nameof(handlerFactory)); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (_handlerFactories.OfType>().Any()) { throw new InvalidOperationException( String.Format( "The configured handler pipeline already contains a factory for message-handlers of type '{0}'.", typeof(THandler).AssemblyQualifiedName ) ); } Type beforeHandlerFactoryType = typeof(Func); for (int handlerIndex = 0; handlerIndex < _handlerFactories.Count; handlerIndex++) { if (_handlerFactories[handlerIndex].GetType() == beforeHandlerFactoryType) { return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Insert(handlerIndex, handlerFactory) }; } } if (throwIfNotPresent) { throw new InvalidOperationException( String.Format( "Cannot insert factory for message-handlers of type '{0}' before the factory for message-handlers of type '{1}' (the pipeline does not contain a factory for message-handlers of this type.", typeof(THandler).AssemblyQualifiedName, typeof(TBeforeHandler).AssemblyQualifiedName ) ); } // TBefore is not present, so just append to the end of the pipeline. return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Add(handlerFactory) }; } /// /// Create a copy of the , inserting an HTTP message-handler factory to the pipeline after the factory that produces handlers of the specified type. /// /// /// The handler type. /// /// /// The type of handler after whose factory the new handler factory should be inserted. /// /// /// The message-handler factory. /// /// /// Throw an if no factory for is present? /// /// Default is false. /// /// /// The (enables method-chaining). /// /// /// and cannot be the base class. /// public ClientBuilder AddHandlerAfter(Func handlerFactory, bool throwIfNotPresent = false) where THandler : DelegatingHandler where TAfterHandler : DelegatingHandler { if (handlerFactory == null) throw new ArgumentNullException(nameof(handlerFactory)); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (typeof(THandler) == typeof(DelegatingHandler)) throw new InvalidOperationException("Handler type cannot be the DelegatingHandler base class."); if (_handlerFactories.OfType>().Any()) { throw new InvalidOperationException( String.Format( "The configured handler pipeline already contains a factory for message-handlers of type '{0}'.", typeof(THandler).AssemblyQualifiedName ) ); } Type afterHandlerFactoryType = typeof(Func); for (int handlerIndex = 0; handlerIndex < _handlerFactories.Count; handlerIndex++) { if (_handlerFactories[handlerIndex].GetType() == afterHandlerFactoryType) { return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Insert(handlerIndex + 1, handlerFactory) }; } } if (throwIfNotPresent) { throw new InvalidOperationException( String.Format( "Cannot insert factory for message-handlers of type '{0}' after the factory for message-handlers of type '{1}' (the pipeline does not contain a factory for message-handlers of this type.", typeof(THandler).AssemblyQualifiedName, typeof(TAfterHandler).AssemblyQualifiedName ) ); } // TAfter is not present, so just append to the end of the pipeline. return new ClientBuilder(this) { _handlerFactories = _handlerFactories.Add(handlerFactory) }; } /// /// Enumerate the types of handlers configured in the factory's pipeline. /// /// /// A sequence of 0 or more types. /// /// /// This operation uses Reflection, so it can be relatively expensive; use sparingly. /// public IEnumerable EnumerateHandlerTypes() { for (int handlerIndex = 0; handlerIndex < _handlerFactories.Count; handlerIndex++) { Func factory = _handlerFactories[handlerIndex]; Type factoryDelegateType = factory.GetType(); yield return factoryDelegateType.GenericTypeArguments[1]; } } } } ================================================ FILE: src/KubeClient.Http/DependencyInjectionExtensions.cs ================================================ using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Net.Http; namespace KubeClient.Http { using Clients; /// /// Extension methods for registering and resolving components for dependency injection. /// public static class DependencyInjectionExtensions { /// /// Register a named (via ) using the configuration from an . /// /// /// The to configure. /// /// /// The name of the configuration to register. /// /// /// The to use for handler configuration. /// /// /// An representing the configuration (enables further customisation). /// public static IHttpClientBuilder AddHttpClient(this IServiceCollection services, string name, ClientBuilder http) { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(name)}.", nameof(name)); if (http == null) throw new ArgumentNullException(nameof(http)); IHttpClientBuilder client = services.AddHttpClient(name); return client.Configure(http); } /// /// Register a named (via ) using the configuration from an . /// /// /// The to configure. /// /// /// The name of the configuration to register. /// /// /// The to use for handler configuration. /// /// /// Configuration delegates will have access to a scoped ; see for further information. /// /// /// /// An representing the configuration (enables further customisation). /// public static IHttpClientBuilder AddHttpClient(this IServiceCollection services, string name, ClientBuilder http) { if (services == null) throw new ArgumentNullException(nameof(services)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(name)}.", nameof(name)); if (http == null) throw new ArgumentNullException(nameof(http)); IHttpClientBuilder client = services.AddHttpClient(name); return client.Configure(http); } /// /// Configure an using an client-builder. /// /// /// An representing the configuration. /// /// /// The used to configure the . /// /// /// The configured . /// static IHttpClientBuilder Configure(this IHttpClientBuilder client, ClientBuilder http) { if (client == null) throw new ArgumentNullException(nameof(client)); if (http == null) throw new ArgumentNullException(nameof(http)); if (http.HasCustomPipelineTerminus) { client.ConfigurePrimaryHttpMessageHandler( () => http.BuildPipelineTerminus() ); } client.ConfigureAdditionalHttpMessageHandlers((handlers, serviceProvider) => { List httpHandlers = http.CreatePipelineHandlers(); foreach (DelegatingHandler httpHandler in httpHandlers) handlers.Add(httpHandler); }); return client; } /// /// Configure an using an client-builder. /// /// /// An representing the configuration. /// /// /// The used to configure the . /// /// /// The configured . /// static IHttpClientBuilder Configure(this IHttpClientBuilder client, ClientBuilder http) { if (client == null) throw new ArgumentNullException(nameof(client)); if (http == null) throw new ArgumentNullException(nameof(http)); if (http.HasCustomPipelineTerminus) { client.ConfigurePrimaryHttpMessageHandler( serviceProvider => http.BuildPipelineTerminus(serviceProvider) ); } client.ConfigureAdditionalHttpMessageHandlers((handlers, serviceProvider) => { List httpHandlers = http.CreatePipelineHandlers(serviceProvider); foreach (DelegatingHandler httpHandler in httpHandlers) handlers.Add(httpHandler); }); return client; } #if NET7_0 || NETSTANDARD2_1 /// /// Configure additional HTTP message handlers. /// /// /// The to configure. /// /// /// A delegate that configures additional handlers. /// /// /// The configured . /// /// /// Polyfill for net7.0/netstandard2.1: ConfigureAdditionalHttpMessageHandlers extension method for IHttpClientBuilder. /// internal static IHttpClientBuilder ConfigureAdditionalHttpMessageHandlers(this IHttpClientBuilder client, Action, IServiceProvider> configureAdditionalHandlers) { if (client == null) throw new ArgumentNullException(nameof(client)); if (configureAdditionalHandlers == null) throw new ArgumentNullException(nameof(configureAdditionalHandlers)); client.ConfigureHttpMessageHandlerBuilder(handlerBuilder => { configureAdditionalHandlers(handlerBuilder.AdditionalHandlers, handlerBuilder.Services); }); return client; } #endif // NET7_0 || NETSTANDARD2_1 } } ================================================ FILE: src/KubeClient.Http/Diagnostics/ClientBuilderExtensions.cs ================================================ using Microsoft.Extensions.Logging; using System; namespace KubeClient.Http.Diagnostics { using Clients; using MessageHandlers; /// /// Extension methods for the HTTP client builder. /// public static class ClientBuilderExtensions { /// /// Create a copy of the HTTP client builder whose clients will log requests and responses to the specified logger. /// /// /// The HTTP client builder. /// /// /// The logger used to log the event. /// /// /// A value indicating which components of each request message should be logged. /// /// /// A value indicating which components of each response message should be logged. /// /// /// The new . /// /// /// This overload is for convenience only; for the purposes of reliability you should resolve the logger when you are creating the client (it's not good practice to share the same instance of a logger between multiple clients). /// public static ClientBuilder WithLogging(this ClientBuilder clientBuilder, ILogger logger, LogMessageComponents requestComponents = LogMessageComponents.Basic, LogMessageComponents responseComponents = LogMessageComponents.Basic) { return clientBuilder.WithLogging(() => logger, requestComponents, responseComponents); } /// /// Create a copy of the HTTP client builder whose clients will log requests and responses to the specified logger. /// /// /// The HTTP client builder. /// /// /// A delegate that produces the logger for each client. /// /// /// A value indicating which components of each request message should be logged. /// /// /// A value indicating which components of each response message should be logged. /// /// /// The new . /// /// /// Each call to should return a new instance of the logger (it's not good practice to share the same instance of a logger between multiple clients). /// public static ClientBuilder WithLogging(this ClientBuilder clientBuilder, Func loggerFactory, LogMessageComponents requestComponents = LogMessageComponents.Basic, LogMessageComponents responseComponents = LogMessageComponents.Basic) { return clientBuilder.AddHandler(() => { ILogger logger = loggerFactory(); return new LoggingMessageHandler(logger, requestComponents, responseComponents); }); } } } ================================================ FILE: src/KubeClient.Http/Diagnostics/LogEventIds.cs ================================================ using Microsoft.Extensions.Logging; namespace KubeClient.Http.Diagnostics { /// /// The Ids of well-known log events raised by KubeClient.Http diagnostics. /// public static class LogEventIds { /// /// An outgoing HTTP request is being performed. /// public static readonly EventId BeginRequest = new EventId(100, nameof(BeginRequest)); /// /// The body of an outgoing HTTP request. /// public static readonly EventId RequestBody = new EventId(101, nameof(RequestBody)); /// /// The body of an incoming HTTP response. /// public static readonly EventId ResponseBody = new EventId(102, nameof(ResponseBody)); /// /// The body of an incoming HTTP response is streamed. /// public static readonly EventId StreamedResponse = new EventId(103, nameof(StreamedResponse)); /// /// An incoming HTTP response has been received. /// public static readonly EventId EndRequest = new EventId(110, nameof(EndRequest)); /// /// An exception occurred while performing an HTTP request. /// public static readonly EventId RequestError = new EventId(115, nameof(RequestError)); } } ================================================ FILE: src/KubeClient.Http/Diagnostics/LogMessageComponents.cs ================================================ using System; namespace KubeClient.Http.Diagnostics { /// /// Components of an HTTP message that should be logged. /// [Flags] public enum LogMessageComponents { /// /// No message components should be logged. /// None = 0, /// /// Basic message components (e.g. method and request URI) should be logged. /// Basic = 1, /// /// Message body should be logged. /// Body = 2, /// /// Message headers should be logged. /// Headers = 4, /// /// All message components should be logged. /// All = Basic | Body | Headers } } ================================================ FILE: src/KubeClient.Http/Diagnostics/LoggerExtensions.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; namespace KubeClient.Http.Diagnostics { /// /// Extension methods for used to log messages about requests and responses. /// public static class LoggerExtensions { /// /// Log an event representing the start of an HTTP request. /// /// /// The logger used to log the event. /// /// /// An representing the request. /// public static void BeginRequest(this ILogger logger, HttpRequestMessage request) { if (logger == null) throw new ArgumentNullException(nameof(logger)); if (request == null) throw new ArgumentNullException(nameof(request)); logger.LogDebug(LogEventIds.BeginRequest, "Performing {Method} request to '{RequestUri}'.", request.Method?.Method, request.RequestUri ); } /// /// Asynchronously log an event representing the body of an HTTP request. /// /// /// The logger used to log the event. /// /// /// An representing the request. /// /// /// A representing the asynchronous operation. /// public static async Task RequestBody(this ILogger logger, HttpRequestMessage request) { if (logger == null) throw new ArgumentNullException(nameof(logger)); if (request == null) throw new ArgumentNullException(nameof(request)); if (request.Content == null) throw new InvalidOperationException("HttpRequestMessage.Content is null."); if (!logger.IsEnabled(LogLevel.Debug)) return; // Don't bother capturing request body if we won't be able to log it. string requestBody = await request.Content.ReadAsStringAsync(); logger.LogDebug(LogEventIds.RequestBody, "Send request body for {Method} request to '{RequestUri}':\n{RequestBody}", request.Method?.Method, request.RequestUri, requestBody ); } /// /// Asynchronously log an event representing the body of an HTTP response. /// /// /// The logger used to log the event. /// /// /// An representing the response. /// /// /// A representing the asynchronous operation. /// public static async Task ResponseBody(this ILogger logger, HttpResponseMessage response) { if (logger == null) throw new ArgumentNullException(nameof(logger)); if (response == null) throw new ArgumentNullException(nameof(response)); if (response.RequestMessage == null) throw new InvalidOperationException("HttpResponseMessage.RequestMessage is null."); // Can't examine original request so we don't know if the response is streamed. if (response.Content == null) throw new InvalidOperationException("HttpResponseMessage.Content is null."); if (!logger.IsEnabled(LogLevel.Debug)) return; // Don't bother capturing response body if we won't be able to log it. string responseBody = await response.Content.ReadAsStringAsync(); logger.LogDebug(LogEventIds.ResponseBody, "Receive response body for {Method} request to '{RequestUri}' ({StatusCode}):\n{Body}", response.RequestMessage.Method?.Method, response.RequestMessage.RequestUri, response.StatusCode, responseBody ); } /// /// Log an event representing the streamed body of an HTTP response. /// /// /// The logger used to log the event. /// /// /// An representing the response. /// public static void StreamedResponse(this ILogger logger, HttpResponseMessage response) { if (logger == null) throw new ArgumentNullException(nameof(logger)); if (response == null) throw new ArgumentNullException(nameof(response)); logger.LogDebug(LogEventIds.StreamedResponse, "Receive response body for {Method} request to '{RequestUri}' (response is streamed so body cannot be logged).", response.RequestMessage.Method?.Method, response.RequestMessage.RequestUri ); } /// /// Log an event representing the completion of an HTTP request. /// /// /// The logger used to log the event. /// /// /// An representing the request. /// /// /// An representing the response status code. /// public static void EndRequest(this ILogger logger, HttpRequestMessage request, HttpStatusCode statusCode) { if (logger == null) throw new ArgumentNullException(nameof(logger)); if (request == null) throw new ArgumentNullException(nameof(request)); logger.LogDebug(LogEventIds.EndRequest, "Completed {Method} request to '{RequestUri}' ({StatusCode}).", request.Method?.Method, request.RequestUri, statusCode ); } /// /// Log an event representing an error encountered while performing an HTTP request. /// /// /// The logger used to log the event. /// /// /// An representing the request. /// /// /// An representing the error. /// public static void RequestError(this ILogger logger, HttpRequestMessage request, Exception error) { if (logger == null) throw new ArgumentNullException(nameof(logger)); if (request == null) throw new ArgumentNullException(nameof(request)); if (error == null) throw new ArgumentNullException(nameof(error)); logger.LogDebug(LogEventIds.RequestError, error, "{Method} request to '{RequestUri} failed: {ErrorMessage}", request.Method?.Method, request.RequestUri, error.Message ); } } } ================================================ FILE: src/KubeClient.Http/Diagnostics/MessageHandlers/LoggingMessageHandler.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Http.Diagnostics.MessageHandlers { /// /// Client-side HTTP message handler that logs outgoing requests and incoming responses. /// public class LoggingMessageHandler : DelegatingHandler { /// /// Create a new . /// /// /// The used to log messages about requests and responses. /// /// /// A value indicating which components of each request message should be logged. /// /// /// A value indicating which components of each response message should be logged. /// public LoggingMessageHandler(ILogger logger, LogMessageComponents requestComponents = LogMessageComponents.Basic, LogMessageComponents responseComponents = LogMessageComponents.Basic) { if (logger == null) throw new ArgumentNullException(nameof(logger)); Log = logger; RequestComponents = requestComponents; ResponseComponents = responseComponents; } /// /// The used to log messages about requests and responses. /// protected ILogger Log { get; } /// /// A value indicating which components of each request message should be logged. /// public LogMessageComponents RequestComponents { get; } /// /// A value indicating which components of each response message should be logged. /// public LogMessageComponents ResponseComponents { get; } /// /// Asynchronously process an outgoing HTTP request message and its incoming response message. /// /// /// The representing the outgoing request. /// /// /// A that can be used to cancel the asynchronous operation. /// /// /// Create a new . /// protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { if (request == null) throw new ArgumentNullException(nameof(request)); if (ShouldLogRequest(LogMessageComponents.Basic)) Log.BeginRequest(request); try { if (ShouldLogRequest(LogMessageComponents.Body) && request.Content != null) await Log.RequestBody(request); HttpResponseMessage response = await base.SendAsync(request, cancellationToken); if (ShouldLogResponse(LogMessageComponents.Body) && response.Content != null) { if (!response.RequestMessage.IsStreamed()) await Log.ResponseBody(response); else Log.StreamedResponse(response); } if (ShouldLogRequest(LogMessageComponents.Basic)) Log.EndRequest(request, response.StatusCode); return response; } catch (Exception eRequest) { // Errors are always logged. Log.RequestError(request, eRequest); throw; } } /// /// Determine whether the specified component of request messages should be logged. /// /// /// A value representing the message component. /// /// /// true, if the message component should be logged; otherwise, false. /// protected bool ShouldLogRequest(LogMessageComponents requestComponent) => (RequestComponents & requestComponent) != 0; /// /// Determine whether the specified component of response messages should be logged. /// /// /// A value representing the message component. /// /// /// true, if the message component should be logged; otherwise, false. /// protected bool ShouldLogResponse(LogMessageComponents responseComponent) => (ResponseComponents & responseComponent) != 0; } } ================================================ FILE: src/KubeClient.Http/Diagnostics/TypedClientBuilderExtensions.cs ================================================ using Microsoft.Extensions.Logging; using System; namespace KubeClient.Http.Diagnostics { using Clients; using MessageHandlers; /// /// Extension methods for the HTTP client builder. /// public static class TypedClientBuilderExtensions { /// /// Create a copy of the HTTP client builder whose clients will log requests and responses to the specified logger. /// /// /// The type that contains contextual information used when creating the client. /// /// /// The HTTP client builder. /// /// /// The logger used to log the event. /// /// /// A value indicating which components of each request message should be logged. /// /// /// A value indicating which components of each response message should be logged. /// /// /// The new . /// /// /// This overload is for convenience only; for the purposes of reliability you should resolve the logger when you are creating the client (it's not good practice to share the same instance of a logger between multiple clients). /// public static ClientBuilder WithLogging(this ClientBuilder clientBuilder, ILogger logger, LogMessageComponents requestComponents = LogMessageComponents.Basic, LogMessageComponents responseComponents = LogMessageComponents.Basic) { return clientBuilder.WithLogging(context => logger, requestComponents, responseComponents); } /// /// Create a copy of the HTTP client builder whose clients will log requests and responses to the specified logger. /// /// /// The type that contains contextual information used when creating the client. /// /// /// The HTTP client builder. /// /// /// A delegate that produces the logger for each client. /// /// /// A value indicating which components of each request message should be logged. /// /// /// A value indicating which components of each response message should be logged. /// /// /// The new . /// /// /// Each call to should return a new instance of the logger (it's not good practice to share the same instance of a logger between multiple clients). /// public static ClientBuilder WithLogging(this ClientBuilder clientBuilder, Func loggerFactory, LogMessageComponents requestComponents = LogMessageComponents.Basic, LogMessageComponents responseComponents = LogMessageComponents.Basic) { return clientBuilder.AddHandler(context => { ILogger logger = loggerFactory(context); return new LoggingMessageHandler(logger, requestComponents, responseComponents); }); } } } ================================================ FILE: src/KubeClient.Http/FactoryExtensions.cs ================================================ using System; namespace KubeClient.Http { /// /// Extension methods for . /// public static class FactoryExtensions { /// /// Create a new HTTP request with the specified request URI. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Create(this HttpRequestFactory requestFactory, string requestUri) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (String.IsNullOrWhiteSpace(requestUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'requestUri'.", nameof(requestUri)); return requestFactory.Create( new Uri(requestUri, UriKind.RelativeOrAbsolute) ); } } } ================================================ FILE: src/KubeClient.Http/Formatters/ContentExtensions.cs ================================================ using System; using System.IO; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; namespace KubeClient.Http { using Formatters; /// /// Extension methods for working with . /// public static class ContentExtensions { /// /// Asynchronously read the body content as the specified type. /// /// /// The CLR data-type that the body content will be deserialised into. /// /// /// The to read. /// /// /// The content formatter used to deserialise the body content. /// /// /// The deserialised body content. /// public static Task ReadAsAsync(this HttpContent content, IInputFormatter formatter) { if (content == null) throw new ArgumentNullException(nameof(content)); InputFormatterContext formatterContext = content.CreateInputFormatterContext(); return content.ReadAsAsync(formatter, formatterContext); } /// /// Asynchronously read the body content as the specified type. /// /// /// The CLR data-type that the body content will be deserialised into. /// /// /// The to read. /// /// /// The content formatter used to deserialise the body content. /// /// /// Contextual information about the content body being deserialised. /// /// /// The deserialised body content. /// public static async Task ReadAsAsync(this HttpContent content, IInputFormatter formatter, InputFormatterContext formatterContext) { if (content == null) throw new ArgumentNullException(nameof(content)); if (formatterContext == null) throw new ArgumentNullException(nameof(formatterContext)); using (Stream responseStream = await content.ReadAsStreamAsync().ConfigureAwait(false)) { object responseBody = await formatter.ReadAsync(formatterContext, responseStream).ConfigureAwait(false); return (TBody)responseBody; } } /// /// Create an for reading the HTTP message content. /// /// /// The CLR data type into which the message body will be deserialised. /// /// /// The HTTP message content. /// /// /// The configured . /// public static InputFormatterContext CreateInputFormatterContext(this HttpContent content) { if (content == null) throw new ArgumentNullException(nameof(content)); MediaTypeHeaderValue contentTypeHeader = content.Headers.ContentType; if (contentTypeHeader == null) throw new InvalidOperationException("Response is missing 'Content-Type' header."); // TODO: Consider custom exception type. Encoding encoding = !String.IsNullOrWhiteSpace(contentTypeHeader.CharSet) ? Encoding.GetEncoding(contentTypeHeader.CharSet) : Encoding.UTF8; return new InputFormatterContext( dataType: typeof(TBody), mediaType: contentTypeHeader.MediaType, encoding: encoding ); } } } ================================================ FILE: src/KubeClient.Http/Formatters/EncodingWithoutPreamble.cs ================================================ using System.Text; namespace KubeClient.Http { /// /// Well-known text encodings for output (i.see. no preambles). /// /// /// Some web APIs don't like being sent preambles to indicate text encoding (usually indicated by HTTP headers instead). /// public static class OutputEncoding { /// /// UTF-8 encoding (no preamble). /// public static readonly Encoding UTF8 = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); /// /// Unicode / UTF-16 encoding (no preamble). /// public static readonly Encoding Unicode = new UnicodeEncoding(bigEndian: false, byteOrderMark: false); } } ================================================ FILE: src/KubeClient.Http/Formatters/FormattedObjectContent.cs ================================================ using System; using System.IO; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; namespace KubeClient.Http.Formatters { /// /// HTTP content formatted using an . /// public class FormattedObjectContent : HttpContent { /// /// The default encoding used by . /// public static readonly Encoding DefaultEncoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); /// /// Create new formatted object content. /// /// /// The that will be used to serialise the data. /// /// /// The data that will be serialised to form the content. /// /// /// The type of data that will be serialised to form the content. /// /// /// The content type being serialised. /// /// /// Uses UTF-8 encoding. /// public FormattedObjectContent(IOutputFormatter formatter, Type dataType, object data, string mediaType) : this(formatter, data, dataType, mediaType, DefaultEncoding) { } /// /// Create new formatted object content. /// /// /// The that will be used to serialise the data. /// /// /// The data that will be serialised to form the content. /// /// /// The type of data that will be serialised to form the content. /// /// /// The media type that the formatter should produce. /// /// /// The that the formatter should use for serialised data. /// public FormattedObjectContent(IOutputFormatter formatter, object data, Type dataType, string mediaType, Encoding encoding) : this(formatter, new OutputFormatterContext(data, dataType, mediaType, encoding)) { } /// /// Create new formatted object content. /// /// /// The that will be used to serialise the data. /// /// /// Contextual information use by the . /// public FormattedObjectContent(IOutputFormatter formatter, OutputFormatterContext formatterContext) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); if (formatterContext == null) throw new ArgumentNullException(nameof(formatterContext)); Formatter = formatter; FormatterContext = formatterContext; Headers.ContentType = new MediaTypeHeaderValue(MediaType); } /// /// The that will be used to serialise the data. /// public IOutputFormatter Formatter { get; } /// /// Contextual information use by the . /// public OutputFormatterContext FormatterContext { get; } /// /// The type of data that will be serialised to form the content. /// public Type DataType => FormatterContext.DataType; /// /// The data that will be serialised to form the content. /// public object Data => FormatterContext.Data; /// /// The media type that the formatter should produce. /// public string MediaType => FormatterContext.MediaType; /// /// The that the formatter should use for serialised data. /// public Encoding Encoding => FormatterContext.Encoding; /// /// Try to pre-compute the formatted content length. /// /// /// The length (in bytes) of the content. /// /// Always -1, since length is not known before serialisation. /// /// /// false. /// protected override bool TryComputeLength(out long length) { // We don't know the length in advance. length = -1; return false; } /// /// Serialize the HTTP content to a stream as an asynchronous operation. /// /// /// The target stream. /// /// /// Information about the transport (channel binding token, for example). /// /// Can be null. /// /// /// Returns .The task object representing the asynchronous operation. /// protected override async Task SerializeToStreamAsync(Stream stream, TransportContext context) { if (stream == null) throw new ArgumentNullException(nameof(stream)); await Formatter.WriteAsync(FormatterContext, stream); } } } ================================================ FILE: src/KubeClient.Http/Formatters/FormatterClientExtensions.cs ================================================ using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Http { using Formatters; /// /// Extension methods for invocation of untyped s using an . /// public static class FormatterClientExtensions { /// /// Asynchronously execute a request as an HTTP POST. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional object to be used as the the request body. /// /// /// If is specified, the media type to be used /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PostAsync(this HttpClient httpClient, HttpRequest request, object postBody, string mediaType, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(HttpMethod.Post, postBody, mediaType, baseUri: httpClient.BaseAddress)) { return await httpClient.SendAsync(requestMessage, cancellationToken); } } /// /// Asynchronously perform an HTTP POST request, serialising the request to JSON. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The object that will be serialised into the request body. /// /// /// An optional cancellation token that can be used to cancel the operation. /// /// /// A representing the asynchronous request, whose result is the response message. /// public static Task PostAsJsonAsync(this HttpClient httpClient, HttpRequest request, object postBody, CancellationToken cancellationToken = default) { return httpClient.PostAsync(request, postBody, WellKnownMediaTypes.Json, cancellationToken); } /// /// Asynchronously execute a request as an HTTP PUT. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional object to be used as the the request body. /// /// /// If is specified, the media type to be used /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PutAsync(this HttpClient httpClient, HttpRequest request, object putBody, string mediaType, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(HttpMethod.Put, putBody, mediaType, baseUri: httpClient.BaseAddress)) { return await httpClient.SendAsync(requestMessage, cancellationToken); } } /// /// Asynchronously perform an HTTP PUT request, serialising the request to JSON. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The object that will be serialised into the request body. /// /// /// An optional cancellation token that can be used to cancel the operation. /// /// /// A representing the asynchronous request, whose result is the response message. /// public static Task PutAsJsonAsync(this HttpClient httpClient, HttpRequest request, object putBody, CancellationToken cancellationToken = default) { return httpClient.PutAsync(request, putBody, WellKnownMediaTypes.Json, cancellationToken); } /// /// Asynchronously execute a request as an HTTP PATCH. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional object to be used as the the request body. /// /// /// If is specified, the media type to be used /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PatchAsync(this HttpClient httpClient, HttpRequest request, object patchBody, string mediaType, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(OtherHttpMethods.Patch, patchBody, mediaType, baseUri: httpClient.BaseAddress)) { return await httpClient.SendAsync(requestMessage, cancellationToken); } } /// /// Asynchronously perform an HTTP PATCH request, serialising the request to JSON. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The object that will be serialised into the request body. /// /// /// An optional cancellation token that can be used to cancel the operation. /// /// /// A representing the asynchronous request, whose result is the response message. /// public static Task PatchAsJsonAsync(this HttpClient httpClient, HttpRequest request, object patchBody, CancellationToken cancellationToken = default) { return httpClient.PatchAsync(request, patchBody, WellKnownMediaTypes.Json, cancellationToken); } /// /// Asynchronously execute a request as an HTTP DELETE. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional object to be used as the the request body. /// /// /// If is specified, the media type to be used /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task DeleteAsync(this HttpClient httpClient, HttpRequest request, object deleteBody, string mediaType, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(HttpMethod.Delete, deleteBody, mediaType, baseUri: httpClient.BaseAddress)) { return await httpClient.SendAsync(requestMessage, cancellationToken); } } /// /// Asynchronously execute a request as an HTTP DELETE, serialising the request to JSON. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An optional object to be used as the the request body. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static Task DeleteAsJsonAsync(this HttpClient httpClient, HttpRequest request, object deleteBody, CancellationToken cancellationToken = default) { return httpClient.DeleteAsync(request, deleteBody, WellKnownMediaTypes.Json, cancellationToken); } } } ================================================ FILE: src/KubeClient.Http/Formatters/FormatterCollection.cs ================================================ using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace KubeClient.Http.Formatters { /// /// A collection of content formatters. /// public class FormatterCollection : IFormatterCollection { #region Instance data /// /// The underlying collection of formatters, keyed by type. /// readonly Dictionary _formatters = new Dictionary(); #endregion // Instance data #region Construction /// /// Create a new . /// public FormatterCollection() { } /// /// Create a new by copying the specified . /// /// /// The to copy. /// public FormatterCollection(FormatterCollection formatterCollection) { if (formatterCollection == null) throw new ArgumentNullException(nameof(formatterCollection)); foreach (KeyValuePair formatter in formatterCollection._formatters) _formatters.Add(formatter.Key, formatter.Value); } /// /// Create a new . /// /// /// The formatters that the collection will initially contain. /// public FormatterCollection(IEnumerable formatters) { if (formatters == null) throw new ArgumentNullException(nameof(formatters)); foreach (IFormatter formatter in formatters) Add(formatter); } /// /// Create a new . /// /// /// The formatters that the collection will initially contain. /// public FormatterCollection(params IFormatter[] formatters) : this((IEnumerable)formatters) { } #endregion // Construction #region Collection /// /// The number of formatters in the collection. /// public int Count => _formatters.Count; /// /// Add a formatter to the collection. /// /// /// The formatter to add. /// public void Add(IFormatter formatter) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); Type formatterType = formatter.GetType(); if (_formatters.ContainsKey(formatterType)) throw new InvalidOperationException($"The collection already contains a formatter of type '{formatterType.FullName}'."); _formatters.Add(formatterType, formatter); } /// /// Determine whether the collection contains the specified formatter instance. /// /// /// The formatter. /// /// /// true, if the collection contains the formatter; otherwise, false. /// public bool Contains(IFormatter formatter) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); Type formatterType = formatter.GetType(); return _formatters.ContainsKey(formatterType); } /// /// Determine whether the collection contains a formatter of the specified type. /// /// /// The formatter type. /// /// /// true, if the collection contains a formatter of the specified type; otherwise, false. /// public bool Contains(Type formatterType) { if (formatterType == null) throw new ArgumentNullException(nameof(formatterType)); return _formatters.ContainsKey(formatterType); } /// /// Remove the specified formatter (if it is present in the collection). /// /// /// The formatter to remove. /// /// /// true, if the formatter was removed; otherwise, false. /// public bool Remove(IFormatter formatter) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); Type formatterType = formatter.GetType(); return _formatters.Remove(formatterType); } /// /// Remove the formatter of the specified type (if it is present in the collection). /// /// /// The type of formatter to remove. /// /// /// true, if the formatter was removed; otherwise, false. /// public bool Remove(Type formatterType) { if (formatterType == null) throw new ArgumentNullException(nameof(formatterType)); return _formatters.Remove(formatterType); } /// /// Remove all formatters from the collection. /// public void Clear() { _formatters.Clear(); } #endregion // Collection #region Find a formatter /// /// Get the most appropriate formatter to read the specified data. /// /// /// Contextual information about the data to deserialise. /// /// /// The formatter, or null if none of the formatters in the collection can handle the specified content type. /// /// /// is null. /// public IInputFormatter FindInputFormatter(InputFormatterContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); return _formatters.Values .OfType() .FirstOrDefault(formatter => formatter.CanRead(context)); } /// /// Find the most appropriate formatter to write the specified data. /// /// /// Contextual information about the data to deserialise. /// /// /// The formatter, or null if none of the formatters in the collection can handle the specified content type. /// /// /// is null. /// public IOutputFormatter FindOutputFormatter(OutputFormatterContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); return _formatters.Values .OfType() .FirstOrDefault(formatter => formatter.CanWrite(context)); } #endregion // Find a formatter #region IEnumerable /// /// Get a typed enumerator for the formatters in the collection. /// /// /// The enumerator. /// public IEnumerator GetEnumerator() { return _formatters.Values.GetEnumerator(); } /// /// Get an untyped enumerator for the formatters in the collection. /// /// /// The enumerator. /// IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } #endregion // IEnumerable #region ICollection /// /// Is the collection read-only? /// bool ICollection.IsReadOnly => false; /// /// Copy the formatters in the collection to an array. /// /// /// The destination array. /// /// /// The starting index in the destination array. /// public void CopyTo(IFormatter[] array, int arrayIndex) { if (array == null) throw new ArgumentNullException(nameof(array)); _formatters.Values.CopyTo(array, arrayIndex); } #endregion // ICollection } } ================================================ FILE: src/KubeClient.Http/Formatters/FormatterCollectionExtensions.cs ================================================ using System; namespace KubeClient.Http.Formatters { /// /// Extension methods for working with s. /// public static class FormatterCollectionExtensions { /// /// Remove the formatter of the specified type from the collection (if it is present). /// /// /// The type of formatter to remove. /// /// /// The formatter to remove. /// /// /// true, if the formatter was removed; otherwise, false. /// public static bool Remove(this IFormatterCollection formatters) where TFormatter : IFormatter { if (formatters == null) throw new ArgumentNullException(nameof(formatters)); return formatters.Remove(typeof(TFormatter)); } } } ================================================ FILE: src/KubeClient.Http/Formatters/FormatterRequestExtensions.cs ================================================ using System; using System.Collections.Immutable; using System.Net.Http; using System.Net.Http.Headers; using System.Text; namespace KubeClient.Http { using Formatters; /// /// Extension methods for working with s. /// public static class FormatterRequestExtensions { /// /// Create a copy of the , configuring it to accept the JSON ("application/json") media type. /// /// /// The . /// /// /// The new . /// public static HttpRequest ExpectJson(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.AcceptMediaType(WellKnownMediaTypes.Json); } /// /// Create a copy of the , configuring it to accept the JSON ("application/json") media type. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The new . /// public static HttpRequest ExpectJson(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.AcceptMediaType(WellKnownMediaTypes.Json); } /// /// Create a copy of the , configuring it to accept the XML ("application/json") media type. /// /// /// The . /// /// /// The new . /// public static HttpRequest ExpectXml(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.AcceptMediaType(WellKnownMediaTypes.Xml); } /// /// Create a copy of the , configuring it to accept the XML ("application/json") media type. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The new . /// public static HttpRequest ExpectXml(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.AcceptMediaType(WellKnownMediaTypes.Xml); } /// /// Build an HTTP request message, selecting an appropriate content formatter to serialise its body content. /// /// /// The . /// /// /// The HTTP request method. /// /// /// The request body content. /// /// /// The request body media type to use. /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The configured . /// public static HttpRequestMessage BuildRequestMessage(this HttpRequest request, HttpMethod httpMethod, object bodyContent, string mediaType, Uri baseUri = null) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.BuildRequestMessage(httpMethod, bodyContent, mediaType, OutputEncoding.UTF8, baseUri); } /// /// Build an HTTP request message, selecting an appropriate content formatter to serialise its body content. /// /// /// The . /// /// /// The HTTP request method. /// /// /// The request body content. /// /// /// The request body media type to use. /// /// /// The request body encoding to use. /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The configured . /// public static HttpRequestMessage BuildRequestMessage(this HttpRequest request, HttpMethod httpMethod, object bodyContent, string mediaType, Encoding encoding, Uri baseUri = null) { if (request == null) throw new ArgumentNullException(nameof(request)); HttpContent httpContent = bodyContent as HttpContent; if (httpContent == null && bodyContent != null) { IFormatterCollection formatters = request.CreateFormatterCollection(); OutputFormatterContext writeContext = new OutputFormatterContext(bodyContent, bodyContent.GetType(), mediaType, encoding); IOutputFormatter writeFormatter = formatters.FindOutputFormatter(writeContext); if (writeFormatter == null) throw new HttpRequestException($"None of the supplied formatters can write data of type '{writeContext.DataType.FullName}' to media type '{writeContext.MediaType}'."); httpContent = new FormattedObjectContent(writeFormatter, writeContext) { Headers = { ContentType = new MediaTypeHeaderValue(mediaType) } }; } return request.BuildRequestMessage(httpMethod, httpContent, baseUri); } /// /// Create a copy of the , adding the specified content formatter. /// /// /// The . /// /// /// The content formatter to add. /// /// /// The new . /// public static HttpRequest WithFormatter(this HttpRequest request, IFormatter formatter) { if (request == null) throw new ArgumentNullException(nameof(request)); Type formatterType = formatter.GetType(); ImmutableDictionary formatters = request.GetFormatters(); bool isFirstFormatter = formatters.Count == 0; formatters = formatters.SetItem(formatterType, formatter); return request.Clone(properties => { properties[MessageProperties.ContentFormatters] = formatters; // If this is the first formatter we're adding, then make sure that we'll populate the formatter collection for each outgoing request. if (isFirstFormatter) { properties[nameof(request.RequestActions)] = request.RequestActions.Add((requestMessage, context) => { #pragma warning disable CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) requestMessage.Properties[MessageProperties.ContentFormatters] = new FormatterCollection(formatters.Values); #pragma warning restore CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) }); } }); } /// /// Create a copy of the , adding the specified content formatter. /// /// /// The . /// /// /// The type of content formatter to remove. /// /// /// The new . /// public static HttpRequest WithoutFormatter(this HttpRequest request, Type formatterType) { if (request == null) throw new ArgumentNullException(nameof(request)); if (formatterType == null) throw new ArgumentNullException(nameof(formatterType)); ImmutableDictionary formatters = request.GetFormatters(); if (formatters == null) return request; if (!formatters.ContainsKey(formatterType)) return request; return request.Clone(properties => { properties[MessageProperties.ContentFormatters] = formatters.Remove(formatterType); }); } /// /// Get the collection formatters used by the . /// /// /// The . /// /// /// An immutable dictionary of formatters, keyed by type. /// public static ImmutableDictionary GetFormatters(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); object formatters; if (request.Properties.TryGetValue(MessageProperties.ContentFormatters, out formatters)) return (ImmutableDictionary)formatters; return ImmutableDictionary.Empty; } /// /// Create an from the request's registered formatters. /// /// /// The . /// /// /// An representing the formatter collection. /// public static IFormatterCollection CreateFormatterCollection(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return new FormatterCollection( request.GetFormatters().Values ); } } } ================================================ FILE: src/KubeClient.Http/Formatters/FormatterResponseExtensions.cs ================================================ using System; using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; namespace KubeClient.Http { using Formatters; /// /// Extension methods for the s returned asynchronously by invocation of s by s. /// public static class FormatterResponseExtensions { /// /// Asynchronously read the response body as the specified type using a specific content formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The asynchronous response. /// /// /// A that will be used to read the response body. /// /// /// Optional s that are expected and should therefore not prevent the response from being deserialised. /// /// If not specified, then the standard behaviour provided by is used. /// /// /// The deserialised response body. /// public static async Task ReadContentAsAsync(this Task response, IInputFormatter formatter, params HttpStatusCode[] expectedStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (formatter == null) throw new ArgumentNullException(nameof(formatter)); using (HttpResponseMessage responseMessage = await response.ConfigureAwait(false)) { if (!expectedStatusCodes.Contains(responseMessage.StatusCode)) responseMessage.EnsureSuccessStatusCode(); // Default behaviour. return await responseMessage.ReadContentAsAsync(formatter).ConfigureAwait(false); } } /// /// Asynchronously read the response body as the specified type, selecting the most appropriate content formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The asynchronous response. /// /// /// The that will be used to select an appropriate content formatter for reading the response body. /// /// /// Optional s that are expected and should therefore not prevent the response from being deserialised. /// /// If not specified, then the standard behaviour provided by is used. /// /// /// The deserialised response body. /// public static async Task ReadContentAsAsync(this Task response, IFormatterCollection formatters, params HttpStatusCode[] expectedStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (formatters == null) throw new ArgumentNullException(nameof(formatters)); using (HttpResponseMessage responseMessage = await response.ConfigureAwait(false)) { if (!expectedStatusCodes.Contains(responseMessage.StatusCode)) responseMessage.EnsureSuccessStatusCode(); // Default behaviour. return await responseMessage.ReadContentAsAsync(formatters).ConfigureAwait(false); } } /// /// Asynchronously read the response body as the specified type using a specific content formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The asynchronous response. /// /// /// Optional s that are expected and should therefore not prevent the response from being deserialised. /// /// If not specified, then the standard behaviour provided by is used. /// /// /// The deserialised response body. /// /// /// No content formatters were configured for the request that generated the response message. /// /// Consider using the overload of ReadAsAsync that takes a specific . /// public static async Task ReadContentAsAsync(this Task response, params HttpStatusCode[] expectedStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); using (HttpResponseMessage responseMessage = await response.ConfigureAwait(false)) { if (!expectedStatusCodes.Contains(responseMessage.StatusCode)) responseMessage.EnsureSuccessStatusCode(); // Default behaviour. return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); } } /// /// Asynchronously read the response body as the specified type. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The asynchronous response. /// /// /// The that will be used to read the response body. /// /// /// A delegate that is called to get a in the event that the response status code is not valid. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// public static Task ReadContentAsAsync(this Task response, IInputFormatter formatter, Func onFailureResponse, params HttpStatusCode[] successStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (formatter == null) throw new ArgumentNullException(nameof(formatter)); if (onFailureResponse == null) throw new ArgumentNullException(nameof(onFailureResponse)); return response.ReadContentAsAsync(formatter, responseMessage => onFailureResponse(), successStatusCodes); } /// /// Asynchronously read the response body as the specified type. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The asynchronous response. /// /// /// The that will be used to read the response body. /// /// /// A delegate that is called to get a in the event that the response status code is not valid. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// public static async Task ReadContentAsAsync(this Task response, IInputFormatter formatter, Func onFailureResponse, params HttpStatusCode[] successStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (onFailureResponse == null) throw new ArgumentNullException(nameof(onFailureResponse)); using (HttpResponseMessage responseMessage = await response.ConfigureAwait(false)) { if (!successStatusCodes.Contains(responseMessage.StatusCode) && !responseMessage.IsSuccessStatusCode) return onFailureResponse(responseMessage); return await responseMessage.ReadContentAsAsync(formatter).ConfigureAwait(false); } } /// /// Asynchronously read the response body as the specified type, selecting the most appropriate formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The asynchronous response. /// /// /// A delegate that is called to get a in the event that the response status code is not valid. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// public static Task ReadContentAsAsync(this Task response, Func onFailureResponse, params HttpStatusCode[] successStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (onFailureResponse == null) throw new ArgumentNullException(nameof(onFailureResponse)); return response.ReadContentAsAsync(responseMessage => onFailureResponse(), successStatusCodes); } /// /// Asynchronously read the response body as the specified type, selecting the most appropriate formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The asynchronous response. /// /// /// A delegate that is called to get a in the event that the response status code is not valid. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// public static async Task ReadContentAsAsync(this Task response, Func onFailureResponse, params HttpStatusCode[] successStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (onFailureResponse == null) throw new ArgumentNullException(nameof(onFailureResponse)); using (HttpResponseMessage responseMessage = await response.ConfigureAwait(false)) { if (!successStatusCodes.Contains(responseMessage.StatusCode) && !responseMessage.IsSuccessStatusCode) return onFailureResponse(responseMessage); return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); } } /// /// Asynchronously read the response body as the specified type using the most appropriate formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The CLR type that will be returned in the event that the response status code is unexpected or does not represent success. /// /// /// The asynchronous response. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsAsync(this Task response, params HttpStatusCode[] successStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); using (HttpResponseMessage responseMessage = await response.ConfigureAwait(false)) { if (!successStatusCodes.Contains(responseMessage.StatusCode) && !responseMessage.IsSuccessStatusCode) { TError error = await responseMessage.ReadContentAsAsync().ConfigureAwait(false); throw new HttpRequestException(responseMessage.StatusCode, error); } return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); } } /// /// Asynchronously read the response body as the specified type using the specified formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The CLR type that will be returned in the event that the response status code is unexpected or does not represent success. /// /// /// The asynchronous response. /// /// /// The that will be used to read the response body. /// /// /// A delegate that is called to get a in the event that the response status code is unexpected or does not represent success. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// /// /// The response status code was unexpected or did not represent success. /// public static async Task ReadContentAsAsync(this Task response, IInputFormatter formatter, Func onFailureResponse, params HttpStatusCode[] successStatusCodes) { if (response == null) throw new ArgumentNullException(nameof(response)); if (onFailureResponse == null) throw new ArgumentNullException(nameof(onFailureResponse)); using (HttpResponseMessage responseMessage = await response.ConfigureAwait(false)) { if (!successStatusCodes.Contains(responseMessage.StatusCode) && !responseMessage.IsSuccessStatusCode) { TError error = onFailureResponse(responseMessage); if (error == null) throw new InvalidOperationException("The failure response handler returned null."); throw new HttpRequestException(responseMessage.StatusCode, error); } return await responseMessage.ReadContentAsAsync(formatter).ConfigureAwait(false); } } /// /// Determine if the response has body content. /// /// /// The response message. /// /// /// true, if the response has a non-zero content length. /// public static bool HasBody(this HttpResponseMessage responseMessage) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); if (responseMessage.Content == null) return false; return responseMessage.Content.Headers.ContentLength.GetValueOrDefault() > 0; } /// /// Ensure that the response has body content. /// /// /// The response message. /// /// /// The response message (enables inline use). /// public static HttpResponseMessage EnsureHasBody(this HttpResponseMessage responseMessage) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); if (responseMessage.HasBody()) return responseMessage; throw new InvalidOperationException("The response body is empty."); // TODO: Consider custom exception type. } /// /// Deserialise the response message's content into the specified CLR data type using the most appropriate formatter. /// /// /// The CLR data type into which the body will be deserialised. /// /// /// The response message. /// /// /// The deserialised message body. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsAsync(this HttpResponseMessage responseMessage) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); // TODO: All overloads should return default(TBody) instead of throwing when body is empty! // TODO: Otherwise, leave these overloads as-is, and create TryReadContentAsAsync overloads that don't throw. responseMessage.EnsureHasBody(); IFormatterCollection formatters = responseMessage.GetFormatters(); if (formatters == null || formatters.Count == 0) throw new InvalidOperationException("No content formatters were configured for the request that generated the response message."); // TODO: Consider custom exception type. return await responseMessage.ReadContentAsAsync(formatters).ConfigureAwait(false); } /// /// Deserialise the response message's content into the specified CLR data type using the most appropriate formatter. /// /// /// The CLR data type into which the body will be deserialised. /// /// /// The response message. /// /// /// The collection of content formatters from which to select an appropriate formatter. /// /// /// The deserialised message body. /// /// /// An appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsAsync(this HttpResponseMessage responseMessage, IFormatterCollection formatters) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); if (formatters == null) throw new ArgumentNullException(nameof(formatters)); responseMessage.EnsureHasBody(); InputFormatterContext readContext = responseMessage.Content.CreateInputFormatterContext(); IInputFormatter readFormatter = formatters.FindInputFormatter(readContext); if (readFormatter == null) throw new InvalidOperationException($"None of the supplied formatters can read data of type '{readContext.DataType.FullName}' from media type '{readContext.MediaType}'."); return await responseMessage.ReadContentAsAsync(readFormatter, readContext).ConfigureAwait(false); } /// /// Deserialise the response message's body content into the specified CLR data type using the specified formatter. /// /// /// The CLR data type into which the body content will be deserialised. /// /// /// The response message. /// /// /// The content formatter that will be used to deserialise the body content. /// /// /// The deserialised message body. /// public static Task ReadContentAsAsync(this HttpResponseMessage responseMessage, IInputFormatter formatter) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); if (formatter == null) throw new ArgumentNullException(nameof(formatter)); responseMessage.EnsureHasBody(); InputFormatterContext formatterContext = responseMessage.Content.CreateInputFormatterContext(); return responseMessage.ReadContentAsAsync(formatter, formatterContext); } /// /// Deserialise the response message's body content into the specified CLR data type using the specified formatter. /// /// /// The CLR data type into which the body content will be deserialised. /// /// /// The response message. /// /// /// The content formatter that will be used to deserialise the body content. /// /// /// Contextual information for the formatter about the body content. /// /// /// The deserialised message body. /// /// /// An appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsAsync(this HttpResponseMessage responseMessage, IInputFormatter formatter, InputFormatterContext formatterContext) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); if (formatter == null) throw new ArgumentNullException(nameof(formatter)); if (formatterContext == null) throw new ArgumentNullException(nameof(formatterContext)); responseMessage.EnsureHasBody(); return await responseMessage.Content.ReadAsAsync(formatter, formatterContext).ConfigureAwait(false); } /// /// Asynchronously read the response body as the specified type using the most appropriate formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The CLR type that will be returned in the event that the response status code is unexpected or does not represent success. /// /// /// The response message. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// /// /// The response status code was unexpected or did not represent success. /// /// /// No formatters were configured for the request, or an appropriate formatter could not be found in the request's list of formatters. /// public static async Task ReadContentAsAsync(this HttpResponseMessage responseMessage, params HttpStatusCode[] successStatusCodes) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); if (!successStatusCodes.Contains(responseMessage.StatusCode) && !responseMessage.IsSuccessStatusCode) { TError error = await responseMessage.ReadContentAsAsync().ConfigureAwait(false); throw new HttpRequestException(responseMessage.StatusCode, error); } return await responseMessage.ReadContentAsAsync().ConfigureAwait(false); } /// /// Asynchronously read the response body as the specified type using the specified formatter. /// /// /// The CLR type into which the body content will be deserialised. /// /// /// The CLR type that will be returned in the event that the response status code is unexpected or does not represent success. /// /// /// The response message. /// /// /// The that will be used to read the response body. /// /// /// A delegate that is called to get a in the event that the response status code is unexpected or does not represent success. /// /// /// Optional s that should be treated as representing a successful response. /// /// /// The deserialised body. /// /// /// The response status code was unexpected or did not represent success. /// public static async Task ReadContentAsAsync(this HttpResponseMessage responseMessage, IInputFormatter formatter, Func onFailureResponse, params HttpStatusCode[] successStatusCodes) { if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); if (onFailureResponse == null) throw new ArgumentNullException(nameof(onFailureResponse)); if (!successStatusCodes.Contains(responseMessage.StatusCode) && !responseMessage.IsSuccessStatusCode) { TError error = onFailureResponse(responseMessage); if (error == null) throw new InvalidOperationException("The failure response handler returned null."); throw new HttpRequestException(responseMessage.StatusCode, error); } return await responseMessage.ReadContentAsAsync(formatter).ConfigureAwait(false); } } } ================================================ FILE: src/KubeClient.Http/Formatters/FormatterTypedRequestExtensions.cs ================================================ using System; using System.Collections.Immutable; using System.Net.Http; using System.Net.Http.Headers; using System.Text; namespace KubeClient.Http { using Formatters; /// /// Extension methods for working with s. /// public static class FormatterTypedRequestExtensions { /// /// Build an HTTP request message, selecting an appropriate content formatter to serialise its body content. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP request method. /// /// /// The instance to use as a context for resolving deferred template parameters. /// /// /// The request body content. /// /// /// The request body media type to use. /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The configured . /// public static HttpRequestMessage BuildRequestMessage(this HttpRequest request, HttpMethod httpMethod, TContext context, object bodyContent, string mediaType, Uri baseUri = null) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.BuildRequestMessage(httpMethod, context, bodyContent, mediaType, OutputEncoding.UTF8, baseUri); } /// /// Build an HTTP request message, selecting an appropriate content formatter to serialise its body content. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP request method. /// /// /// The instance to use as a context for resolving deferred template parameters. /// /// /// The request body content. /// /// /// The request body media type to use. /// /// /// The request body encoding to use. /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The configured . /// public static HttpRequestMessage BuildRequestMessage(this HttpRequest request, HttpMethod httpMethod, TContext context, object bodyContent, string mediaType, Encoding encoding, Uri baseUri = null) { if (request == null) throw new ArgumentNullException(nameof(request)); HttpContent httpContent = bodyContent as HttpContent; if (httpContent == null && bodyContent != null) { httpContent.Headers.ContentType = new MediaTypeHeaderValue(mediaType); IFormatterCollection formatters = request.CreateFormatterCollection(); OutputFormatterContext writeContext = new OutputFormatterContext(bodyContent, bodyContent.GetType(), mediaType, encoding); IOutputFormatter writeFormatter = formatters.FindOutputFormatter(writeContext); if (writeFormatter == null) throw new HttpRequestException($"None of the supplied formatters can write data of type '{writeContext.DataType.FullName}' to media type '{writeContext.MediaType}'."); httpContent = new FormattedObjectContent(writeFormatter, writeContext); } return request.BuildRequestMessage(httpMethod, context, httpContent, baseUri); } /// /// Create a copy of the , adding the specified content formatter. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The content formatter to add. /// /// /// The new . /// public static HttpRequest WithFormatter(this HttpRequest request, IFormatter formatter) { if (request == null) throw new ArgumentNullException(nameof(request)); Type formatterType = formatter.GetType(); return request.Clone(properties => { ImmutableDictionary formatters = request.GetFormatters(); // If this is the first formatter we're adding, then make sure that we'll populate the formatter collection for each outgoing request. if (formatters.Count == 0) { properties[nameof(request.RequestActions)] = request.RequestActions.Add((requestMessage, context) => { #pragma warning disable CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) requestMessage.Properties[MessageProperties.ContentFormatters] = new FormatterCollection(formatters.Values); #pragma warning restore CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) }); } properties[MessageProperties.ContentFormatters] = formatters.SetItem(formatterType, formatter); }); } /// /// Create a copy of the , adding the specified content formatter. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The type of content formatter to remove. /// /// /// The new . /// public static HttpRequest WithoutFormatter(this HttpRequest request, Type formatterType) { if (request == null) throw new ArgumentNullException(nameof(request)); if (formatterType == null) throw new ArgumentNullException(nameof(formatterType)); ImmutableDictionary formatters = request.GetFormatters(); if (formatters == null) return request; if (!formatters.ContainsKey(formatterType)) return request; return request.Clone(properties => { properties[MessageProperties.ContentFormatters] = formatters.Remove(formatterType); }); } /// /// Get the collection formatters used by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// An immutable dictionary of formatters, keyed by type. /// public static ImmutableDictionary GetFormatters(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); object formatters; if (request.Properties.TryGetValue(MessageProperties.ContentFormatters, out formatters)) return (ImmutableDictionary)formatters; return ImmutableDictionary.Empty; } /// /// Create an from the request's registered formatters. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// An representing the formatter collection. /// public static IFormatterCollection CreateFormatterCollection(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return new FormatterCollection( request.GetFormatters().Values ); } } } ================================================ FILE: src/KubeClient.Http/Formatters/IFormatter.cs ================================================ using System.Collections.Generic; namespace KubeClient.Http.Formatters { /// /// Represents a content formatter. /// public interface IFormatter { /// /// Content types supported by the formatter. /// ISet SupportedMediaTypes { get; } } } ================================================ FILE: src/KubeClient.Http/Formatters/IFormatterCollection.cs ================================================ using System; using System.Collections.Generic; namespace KubeClient.Http.Formatters { /// /// Represents a collection of content formatters. /// public interface IFormatterCollection : ICollection { /// /// Get the most appropriate formatter to read the specified data. /// /// /// Contextual information about the data to deserialise. /// /// /// The formatter, or null if none of the formatters in the collection can handle the specified content type. /// /// /// is null. /// IInputFormatter FindInputFormatter(InputFormatterContext context); /// /// Find the most appropriate formatter to write the specified data. /// /// /// Contextual information about the data to deserialise. /// /// /// The formatter, or null if none of the formatters in the collection can handle the specified content type. /// /// /// is null. /// IOutputFormatter FindOutputFormatter(OutputFormatterContext context); /// /// Determine whether the collection contains a formatter of the specified type. /// /// /// The formatter type. /// /// /// true, if the collection contains a formatter of the specified type; otherwise, false. /// bool Contains(Type formatterType); /// /// Remove the formatter of the specified type (if it is present in the collection). /// /// /// The type of formatter to remove. /// /// /// true, if the formatter was removed; otherwise, false. /// bool Remove(Type formatterType); } } ================================================ FILE: src/KubeClient.Http/Formatters/IInputFormatter.cs ================================================ using System.IO; using System.Threading.Tasks; namespace KubeClient.Http.Formatters { /// /// Represents a facility for deserialising data for one or more media types. /// public interface IInputFormatter : IFormatter { /// /// Determine whether the formatter can deserialise the specified data. /// /// /// Contextual information about the data being deserialised. /// /// /// true, if the formatter can deserialise the data; otherwise, false. /// bool CanRead(InputFormatterContext context); /// /// Asynchronously deserialise data from an input stream. /// /// /// Contextual information about the data being deserialised. /// /// /// The input stream from which to read serialised data. /// /// /// The deserialised object. /// Task ReadAsync(InputFormatterContext context, Stream stream); } } ================================================ FILE: src/KubeClient.Http/Formatters/IInputOutputFormatter.cs ================================================ namespace KubeClient.Http.Formatters { /// /// Represents a formatter that can both serialise and deserialise data. /// public interface IInputOutputFormatter : IInputFormatter, IOutputFormatter { } } ================================================ FILE: src/KubeClient.Http/Formatters/IOutputFormatter.cs ================================================ using System.IO; using System.Threading.Tasks; namespace KubeClient.Http.Formatters { /// /// Represents a facility for serialising data to one or more media types. /// public interface IOutputFormatter : IFormatter { /// /// Determine whether the formatter can serialise the specified data. /// /// /// Contextual information about the data being serialised. /// /// /// true, if the formatter can serialise the data; otherwise, false. /// bool CanWrite(OutputFormatterContext context); /// /// Asynchronously serialise data to an output stream. /// /// /// Contextual information about the data being deserialised. /// /// /// The output stream to which the serialised data will be written. /// /// /// A representing the asynchronous operation. /// Task WriteAsync(OutputFormatterContext context, Stream stream); } } ================================================ FILE: src/KubeClient.Http/Formatters/InputFormatterContext.cs ================================================ using System; using System.IO; using System.Text; using System.Threading; namespace KubeClient.Http.Formatters { /// /// Contextual information used by input formatters. /// public class InputFormatterContext { /// /// Create a new . /// /// /// The CLR type into which the data will be deserialised. /// /// /// The media type that the formatter should expect. /// /// /// The content encoding that the formatter should expect. /// /// /// An optional that can be used to cancel the operation. /// public InputFormatterContext(Type dataType, string mediaType, Encoding encoding, CancellationToken cancellationToken = default) { DataType = dataType; MediaType = mediaType; Encoding = encoding; CancellationToken = cancellationToken; } /// /// The CLR type into which the data will be deserialised. /// public Type DataType { get; } /// /// The media type that the formatter should expect. /// public string MediaType { get; } /// /// The content encoding that the formatter should expect. /// public Encoding Encoding { get; } /// /// A that can be used to cancel the operation. /// public CancellationToken CancellationToken { get; } /// /// Create a from the specified input stream. /// /// /// The input stream. /// /// /// The . /// /// /// The , when closed, will not close the input stream. /// public virtual TextReader CreateReader(Stream inputStream) { if (inputStream == null) throw new ArgumentNullException(nameof(inputStream)); return StreamHelper.CreateTransientTextReader(inputStream, Encoding); } } } ================================================ FILE: src/KubeClient.Http/Formatters/Json/JsonFormatter.cs ================================================ #if NET8_0_OR_GREATER using System; using System.Collections.Generic; using System.IO; using System.Text.Json; using System.Threading.Tasks; namespace KubeClient.Http.Formatters.Json { /// /// Content formatter for JSON using .Json (JSON.NET). /// public class JsonFormatter : IInputFormatter, IOutputFormatter { /// /// Create a new . /// public JsonFormatter() { } /// /// Settings for the JSON serialiser. /// public JsonSerializerOptions JsonSerializerOptions { get; set; } /// /// Content types supported by the formatter. /// public ISet SupportedMediaTypes { get; } = new HashSet { WellKnownMediaTypes.Json }; /// /// Determine whether the formatter can deserialise the specified data. /// /// /// Contextual information about the data being deserialised. /// /// /// true, if the formatter can deserialise the data; otherwise, false. /// public bool CanRead(InputFormatterContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); return SupportedMediaTypes.Contains(context.MediaType); } /// /// Determine whether the formatter can serialise the specified data. /// /// /// Contextual information about the data being serialised. /// /// /// true, if the formatter can serialise the data; otherwise, false. /// public bool CanWrite(OutputFormatterContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); return SupportedMediaTypes.Contains(context.MediaType); } /// /// Asynchronously deserialise data from an input stream. /// /// /// Contextual information about the data being deserialised. /// /// /// The input stream from which to read serialised data. /// /// /// The deserialised object. /// public async Task ReadAsync(InputFormatterContext context, Stream stream) { if (context == null) throw new ArgumentNullException(nameof(context)); if (stream == null) throw new ArgumentNullException(nameof(stream)); return await JsonSerializer.DeserializeAsync(stream, context.DataType, JsonSerializerOptions, context.CancellationToken).ConfigureAwait(false); } /// /// Asynchronously serialise data to an output stream. /// /// /// Contextual information about the data being deserialised. /// /// /// The output stream to which the serialised data will be written. /// /// /// A representing the asynchronous operation. /// public async Task WriteAsync(OutputFormatterContext context, Stream stream) { if (context == null) throw new ArgumentNullException(nameof(context)); if (stream == null) throw new ArgumentNullException(nameof(stream)); if (!SupportedMediaTypes.Contains(context.MediaType)) throw new NotSupportedException($"The {nameof(JsonFormatter)} cannot write content of type '{context.MediaType}'."); await JsonSerializer.SerializeAsync(stream, context.Data, JsonSerializerOptions, context.CancellationToken).ConfigureAwait(false); } } } #endif // NET8_0_OR_GREATER ================================================ FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatter.cs ================================================ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; namespace KubeClient.Http.Formatters.Json { /// /// Content formatter for JSON using Newtonsoft.Json (JSON.NET). /// public class NewtonsoftJsonFormatter : IInputFormatter, IOutputFormatter { /// /// Create a new . /// public NewtonsoftJsonFormatter() { } /// /// Settings for the JSON serialiser. /// public JsonSerializerSettings SerializerSettings { get; set; } /// /// Content types supported by the formatter. /// public ISet SupportedMediaTypes { get; } = new HashSet { WellKnownMediaTypes.Json }; /// /// Determine whether the formatter can deserialise the specified data. /// /// /// Contextual information about the data being deserialised. /// /// /// true, if the formatter can deserialise the data; otherwise, false. /// public bool CanRead(InputFormatterContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); return SupportedMediaTypes.Contains(context.MediaType); } /// /// Determine whether the formatter can serialise the specified data. /// /// /// Contextual information about the data being serialised. /// /// /// true, if the formatter can serialise the data; otherwise, false. /// public bool CanWrite(OutputFormatterContext context) { if (context == null) throw new ArgumentNullException(nameof(context)); return SupportedMediaTypes.Contains(context.MediaType); } /// /// Asynchronously deserialise data from an input stream. /// /// /// Contextual information about the data being deserialised. /// /// /// The input stream from which to read serialised data. /// /// /// The deserialised object. /// public Task ReadAsync(InputFormatterContext context, Stream stream) { if (context == null) throw new ArgumentNullException(nameof(context)); if (stream == null) throw new ArgumentNullException(nameof(stream)); using (TextReader reader = context.CreateReader(stream)) { JsonSerializer serializer = JsonSerializer.Create(SerializerSettings); object data = serializer.Deserialize(reader, context.DataType); return Task.FromResult(data); } } /// /// Asynchronously serialise data to an output stream. /// /// /// Contextual information about the data being deserialised. /// /// /// The output stream to which the serialised data will be written. /// /// /// A representing the asynchronous operation. /// public Task WriteAsync(OutputFormatterContext context, Stream stream) { if (context == null) throw new ArgumentNullException(nameof(context)); if (stream == null) throw new ArgumentNullException(nameof(stream)); if (!SupportedMediaTypes.Contains(context.MediaType)) throw new NotSupportedException($"The {nameof(NewtonsoftJsonFormatter)} cannot write content of type '{context.MediaType}'."); using (TextWriter writer = context.CreateWriter(stream)) { JsonSerializer serializer = JsonSerializer.Create(SerializerSettings); serializer.Serialize(writer, context.Data, context.DataType); } return Task.CompletedTask; } } } ================================================ FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterExtensions.cs ================================================ using Newtonsoft.Json; using System; namespace KubeClient.Http { using Formatters; using Formatters.Json; /// /// Extension methods for content formatters. /// public static class NewtonsoftJsonFormatterExtensions { /// /// Add the JSON content formatter. /// /// /// The content formatter collection. /// /// /// Optional settings for the JSON serialiser. /// /// /// The content formatter collection (enables method-chaining). /// public static IFormatterCollection AddJsonFormatter(this IFormatterCollection formatters, JsonSerializerSettings serializerSettings = null) { if (formatters == null) throw new ArgumentNullException(nameof(formatters)); formatters.Add(new NewtonsoftJsonFormatter { SerializerSettings = serializerSettings }); return formatters; } } } ================================================ FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterFactoryExtensions.cs ================================================ using Newtonsoft.Json; using System; namespace KubeClient.Http { using Formatters.Json; /// /// JSON request extension methods for . /// public static class NewtonsoftJsonFormatterFactoryExtensions { /// /// Create a new HTTP request that expects and uses JSON as its primary format. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Json(this HttpRequestFactory requestFactory, string requestUri) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); return requestFactory.Json(requestUri, null); } /// /// Create a new HTTP request that expects and uses JSON as its primary format. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The JSON serialiser settings used by the . /// /// /// The new . /// public static HttpRequest Json(this HttpRequestFactory requestFactory, string requestUri, JsonSerializerSettings serializerSettings) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (String.IsNullOrWhiteSpace(requestUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'requestUri'.", nameof(requestUri)); return requestFactory.Create(requestUri) .ExpectJson() .UseJson(serializerSettings); } /// /// Create a new HTTP request that expects and uses JSON as its primary format. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Json(this HttpRequestFactory requestFactory, Uri requestUri) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); return requestFactory.Json(requestUri, null); } /// /// Create a new HTTP request that expects and uses JSON as its primary format. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The JSON serialiser settings used by the . /// /// /// The new . /// public static HttpRequest Json(this HttpRequestFactory requestFactory, Uri requestUri, JsonSerializerSettings serializerSettings) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); return requestFactory.Create(requestUri) .ExpectJson() .UseJson(serializerSettings); } } } ================================================ FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterRequestExtensions.cs ================================================ using Newtonsoft.Json; using System; namespace KubeClient.Http { using Formatters.Json; /// /// Formatter-related extension methods for / . /// public static class NewtonsoftJsonFormatterRequestExtensions { /// /// Create a copy of the , configuring it to only use the JSON formatters. /// /// /// The . /// /// /// used to configure the formatter's behaviour. /// /// /// The new . /// public static HttpRequest UseJson(this HttpRequest request, JsonSerializerSettings serializerSettings = null) { if (request == null) throw new ArgumentNullException(nameof(request)); // TODO: Clear all existing formatters, first. return request.WithFormatter(new NewtonsoftJsonFormatter { SerializerSettings = serializerSettings }); } /// /// Create a copy of the , configuring it to only use the JSON formatters. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// used to configure the formatter's behaviour. /// /// /// The new . /// public static HttpRequest UseJson(this HttpRequest request, JsonSerializerSettings serializerSettings = null) { if (request == null) throw new ArgumentNullException(nameof(request)); // TODO: Clear all existing formatters, first. return request.WithFormatter(new NewtonsoftJsonFormatter { SerializerSettings = serializerSettings }); } } } ================================================ FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterTypedFactoryExtensions.cs ================================================ using System; namespace KubeClient.Http.Formatters.Json { /// /// JSON request extension methods for . /// public static class NewtonsoftJsonFormatterTypedFactoryExtensions { /// /// Create a new HTTP request that expects and uses JSON as its primary format. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Json(this HttpRequestFactory requestFactory, string requestUri) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (String.IsNullOrWhiteSpace(requestUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'requestUri'.", nameof(requestUri)); return requestFactory.Create(requestUri) .ExpectJson() .UseJson(); } /// /// Create a new HTTP request that expects and uses JSON as its primary format. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Json(this HttpRequestFactory requestFactory, Uri requestUri) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); return requestFactory.Create(requestUri) .ExpectJson() .UseJson(); } } } ================================================ FILE: src/KubeClient.Http/Formatters/MessageExtensions.cs ================================================ using System; using System.Net.Http; namespace KubeClient.Http { using Formatters; // TODO: Consider migrating to HttpRequestOptions (requires net9.0 or newer). /// /// Formatter-related extension methods for / . /// public static class FormatterMessageExtensions { /// /// Get the message's (if any). /// /// /// The HTTP request message. /// /// /// The content formatters, or null if the message does not have any associated formatters. /// public static IFormatterCollection GetFormatters(this HttpRequestMessage message) { if (message == null) throw new ArgumentNullException(nameof(message)); #pragma warning disable CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) object contentFormatters; message.Properties.TryGetValue(MessageProperties.ContentFormatters, out contentFormatters); #pragma warning restore CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) return (IFormatterCollection)contentFormatters; } /// /// Get the message's (if any). /// /// /// The HTTP request message. /// /// /// The content formatters, or null if the message does not have any associated formatters. /// /// /// Can only be called on an whose contains a valid . /// public static IFormatterCollection GetFormatters(this HttpResponseMessage message) { if (message == null) throw new ArgumentNullException(nameof(message)); HttpRequestMessage requestMessage = message.RequestMessage; if (requestMessage == null) throw new InvalidOperationException("This operation is only valid on a response message produced by invoking an HttpRequest (the response message does not have an associated request message)."); #pragma warning disable CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) object contentFormatters; message.RequestMessage.Properties.TryGetValue(MessageProperties.ContentFormatters, out contentFormatters); #pragma warning restore CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) return (IFormatterCollection)contentFormatters; } /// /// Set the message's . /// /// /// The HTTP request message. /// /// /// The content formatters (if any). /// public static void SetFormatters(this HttpRequestMessage message, IFormatterCollection contentFormatters) { if (message == null) throw new ArgumentNullException(nameof(message)); #pragma warning disable CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) message.Properties[MessageProperties.ContentFormatters] = contentFormatters; #pragma warning restore CS0618 // Type or member is obsolete (HttpRequestMessage.Properties is obsolete in net9.0, replaced by HttpRequestMessage.Options) } } } ================================================ FILE: src/KubeClient.Http/Formatters/OutputFormatterContext.cs ================================================ using System; using System.Text; namespace KubeClient.Http.Formatters { using System.IO; using System.Threading; /// /// Contextual information used by output formatters. /// public class OutputFormatterContext { /// /// Create a new . /// /// /// The data being serialised. /// /// /// The CLR type whose data will be serialised. /// /// /// The media type that the formatter should produced. /// /// /// The content encoding that the formatter should use. /// /// /// An optional that can be used to cancel the operation. /// public OutputFormatterContext(object data, Type dataType, string mediaType, Encoding encoding, CancellationToken cancellationToken = default) { Data = data; DataType = dataType; MediaType = mediaType; Encoding = encoding; } /// /// The data being serialised. /// public object Data { get; } /// /// The CLR type whose data will be serialised. /// public Type DataType { get; } /// /// The content type being serialised. /// public string MediaType { get; } /// /// The content encoding. /// public Encoding Encoding { get; } /// /// A that can be used to cancel the operation. /// public CancellationToken CancellationToken { get; } /// /// Create a from the specified output stream. /// /// /// The output stream. /// /// /// The . /// /// /// The , when closed, will not close the output stream. /// public virtual TextWriter CreateWriter(Stream outputStream) { if (outputStream == null) throw new ArgumentNullException(nameof(outputStream)); return StreamHelper.CreateTransientTextWriter(outputStream, Encoding); } } } ================================================ FILE: src/KubeClient.Http/Formatters/StreamHelper.cs ================================================ using System; using System.IO; using System.Text; namespace KubeClient.Http.Formatters { /// /// Helper methods for formatters working with streams. /// static class StreamHelper { /// /// The default buffer size for s / s created by the helper. /// public const int DefaultBufferSize = 1024; /// /// Create a that, when it is closed, leaves its input stream open. /// /// /// The input stream. /// /// /// The stream's text encoding. /// /// /// An optional buffer size. /// /// Defaults to . /// /// /// The . /// public static TextReader CreateTransientTextReader(Stream inputStream, Encoding encoding, int bufferSize = DefaultBufferSize) { if (inputStream == null) throw new ArgumentNullException(nameof(inputStream)); if (encoding == null) throw new ArgumentNullException(nameof(encoding)); if (bufferSize < DefaultBufferSize) throw new ArgumentOutOfRangeException(nameof(bufferSize), bufferSize, $"Buffer size cannot be less than {bufferSize} bytes."); return new StreamReader(inputStream, encoding, detectEncodingFromByteOrderMarks: false, bufferSize: bufferSize, leaveOpen: true ); } /// /// Create a that, when it is closed, leaves its output stream open. /// /// /// The output stream. /// /// /// The stream's text encoding. /// /// /// An optional buffer size. /// /// Defaults to . /// /// /// The . /// public static TextWriter CreateTransientTextWriter(Stream outputStream, Encoding encoding, int bufferSize = DefaultBufferSize) { if (outputStream == null) throw new ArgumentNullException(nameof(outputStream)); if (encoding == null) throw new ArgumentNullException(nameof(encoding)); if (bufferSize < DefaultBufferSize) throw new ArgumentOutOfRangeException(nameof(bufferSize), bufferSize, $"Buffer size cannot be less than {bufferSize} bytes."); return new StreamWriter(outputStream, encoding, bufferSize: bufferSize, leaveOpen: true ); } } } ================================================ FILE: src/KubeClient.Http/Formatters/WellKnownMediaTypes.cs ================================================ namespace KubeClient.Http.Formatters { /// /// Well-known media type constants. /// public static class WellKnownMediaTypes { /// /// The JSON media type. /// public static readonly string Json = "application/json"; /// /// The plain-text media type. /// public static readonly string PlainText = "text/plain"; /// /// The JSON media type. /// public static readonly string Xml = "text/xml"; } } ================================================ FILE: src/KubeClient.Http/HttpRequest.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Collections.Specialized; using System.Diagnostics; using System.Linq; using System.Net.Http; namespace KubeClient.Http { using Utilities; using ValueProviders; using RequestProperties = ImmutableDictionary; /// /// A template for an HTTP request. /// public sealed class HttpRequest : HttpRequestBase, IHttpRequest, IHttpRequest { #region Constants /// /// The used a context for all untyped HTTP requests. /// internal static readonly object DefaultContext = new object(); /// /// The base properties for s. /// static readonly RequestProperties BaseProperties = new Dictionary { [nameof(RequestActions)] = ImmutableList>.Empty, [nameof(ResponseActions)] = ImmutableList>.Empty, [nameof(TemplateParameters)] = ImmutableDictionary>.Empty, [nameof(QueryParameters)] = ImmutableDictionary>.Empty } .ToImmutableDictionary(); /// /// An empty . /// public static readonly HttpRequest Empty = new HttpRequest(BaseProperties); /// /// The default factory for s. /// public static HttpRequestFactory Factory { get; } = new HttpRequestFactory(Empty); #endregion // Constants #region Construction /// /// Create a new HTTP request. /// /// /// The request properties. /// HttpRequest(ImmutableDictionary properties) : base(properties) { EnsurePropertyType>>( propertyName: nameof(RequestActions) ); EnsurePropertyType>>( propertyName: nameof(TemplateParameters) ); EnsurePropertyType>>( propertyName: nameof(QueryParameters) ); } /// /// Create a new HTTP request with the specified request URI. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Create(string requestUri) => Factory.Create(requestUri); /// /// Create a new HTTP request with the specified request URI. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Create(Uri requestUri) => Factory.Create(requestUri); #endregion // Construction #region Properties /// /// Actions (if any) to perform on the outgoing request message. /// public ImmutableList> RequestActions => GetProperty>>(); /// /// Actions (if any) to perform on the incoming response message. /// public ImmutableList> ResponseActions => GetProperty>>(); /// /// The request's URI template parameters (if any). /// public ImmutableDictionary> TemplateParameters => GetProperty>>(); /// /// The request's query parameters (if any). /// public ImmutableDictionary> QueryParameters => GetProperty>>(); #endregion // Properties #region Invocation /// /// Build the request URI represented by the . /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The request URI. /// public Uri BuildRequestUri(Uri baseUri = null) { // Ensure we have an absolute URI. Uri requestUri = Uri; if (requestUri == null) throw new InvalidOperationException("Cannot build a request message; the request does not have a URI."); if (!requestUri.IsAbsoluteUri) { if (baseUri == null) throw new InvalidOperationException("Cannot build a request message; the request does not have an absolute request URI, and no base URI was supplied."); // Make relative to base URI. requestUri = baseUri.AppendRelativeUri(requestUri); } else { // Extract base URI to which request URI is already (by definition) relative. baseUri = new Uri( requestUri.GetComponents( UriComponents.Scheme | UriComponents.StrongAuthority, UriFormat.UriEscaped ) ); } if (IsUriTemplate) { UriTemplate template = new UriTemplate( requestUri.GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped) ); IDictionary templateParameterValues = GetTemplateParameterValues(); requestUri = template.Populate(baseUri, templateParameterValues); } // Merge in any other query parameters defined directly on the request. requestUri = MergeQueryParameters(requestUri); return requestUri; } /// /// Build and configure a new HTTP request message. /// /// /// The HTTP request method to use. /// /// /// Optional representing the request body. /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The configured . /// public HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, HttpContent body = null, Uri baseUri = null) { if (httpMethod == null) throw new ArgumentNullException(nameof(httpMethod)); Uri requestUri = BuildRequestUri(baseUri); HttpRequestMessage requestMessage = null; try { requestMessage = new HttpRequestMessage(httpMethod, requestUri); SetStandardMessageProperties(requestMessage); if (body != null) requestMessage.Content = body; List configurationActionExceptions = new List(); foreach (RequestAction requestAction in RequestActions) { if (requestAction == null) continue; try { requestAction(requestMessage, DefaultContext); } catch (Exception eConfigurationAction) { configurationActionExceptions.Add(eConfigurationAction); } } if (configurationActionExceptions.Count > 0) { throw new AggregateException( "One or more unhandled exceptions were encountered while configuring the outgoing request message.", configurationActionExceptions ); } } catch { using (requestMessage) { throw; } } return requestMessage; } /// /// Build and configure a new HTTP request message. /// /// /// The HTTP request method to use. /// /// /// The object used as a context for resolving deferred template values. /// /// /// Optional representing the request body. /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The configured . /// HttpRequestMessage IHttpRequest.BuildRequestMessage(HttpMethod httpMethod, object context, HttpContent body, Uri baseUri) { return BuildRequestMessage(httpMethod, body, baseUri); } #endregion // Invocation #region IHttpRequestProperties /// /// Actions (if any) to perform on the outgoing request message. /// IReadOnlyList> IHttpRequestProperties.RequestActions => RequestActions; /// /// Actions (if any) to perform on the outgoing request message. /// IReadOnlyList> IHttpRequestProperties.ResponseActions => ResponseActions; /// /// The request's URI template parameters (if any). /// IReadOnlyDictionary> IHttpRequestProperties.TemplateParameters => TemplateParameters; /// /// The request's query parameters (if any). /// IReadOnlyDictionary> IHttpRequestProperties.QueryParameters => QueryParameters; #endregion // IHttpRequestProperties #region Cloning /// /// Clone the request. /// /// /// A delegate that performs modifications to the request properties. /// /// /// The cloned request. /// public new HttpRequest Clone(Action> modifications) { if (modifications == null) throw new ArgumentNullException(nameof(modifications)); return (HttpRequest)base.Clone(modifications); } /// /// Create a new instance of the HTTP request using the specified properties. /// /// /// The request properties. /// /// /// The new HTTP request instance. /// protected override HttpRequestBase CreateInstance(ImmutableDictionary requestProperties) { return new HttpRequest(requestProperties); } #endregion // Cloning #region Helpers /// /// Merge the request's query parameters (if any) into the request URI. /// /// /// The request URI. /// /// /// The request URI with query parameters merged into it. /// Uri MergeQueryParameters(Uri requestUri) { if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); if (QueryParameters.Count == 0) return requestUri; NameValueCollection queryParameters = requestUri.ParseQueryParameters(); foreach (KeyValuePair> queryParameter in QueryParameters) { string queryParameterValue = queryParameter.Value.Get(DefaultContext); if (queryParameterValue != null) queryParameters[queryParameter.Key] = queryParameterValue; else queryParameters.Remove(queryParameter.Key); } return requestUri.WithQueryParameters(queryParameters); } /// /// Get a dictionary mapping template parameters (if any) to their current values. /// /// /// A dictionary of key / value pairs (any parameters whose value-getters return null will be omitted). /// IDictionary GetTemplateParameterValues() { return TemplateParameters.Select(templateParameter => { Debug.Assert(templateParameter.Value != null); return new { templateParameter.Key, Value = templateParameter.Value.Get(DefaultContext) }; }) .Where( templateParameter => templateParameter.Value != null ) .ToDictionary( templateParameter => templateParameter.Key, templateParameter => templateParameter.Value ); } /// /// Configure standard properties for the specified . /// /// /// The . /// void SetStandardMessageProperties(HttpRequestMessage requestMessage) { if (requestMessage == null) throw new ArgumentNullException(nameof(requestMessage)); // TODO: Switch to HttpRequestOptions once we drop netstandard2.1 support. #pragma warning disable CS0618 // Type or member is obsolete requestMessage.Properties[MessageProperties.Request] = this; #pragma warning restore CS0618 // Type or member is obsolete } #endregion // Helpers } } ================================================ FILE: src/KubeClient.Http/HttpRequestException.cs ================================================ using System.Net; using System.Net.Http; namespace KubeClient.Http { /// /// Exception thrown when an error response is received while making an HTTP request. /// /// /// TODO: Throw this from response.ReadContentAsAsync<TResponse, TErrorResponse>. /// public class HttpRequestException : HttpRequestException { /// /// Create a new . /// /// /// The response's HTTP status code. /// /// /// The response body. /// public HttpRequestException(HttpStatusCode statusCode, TResponse response) : this(statusCode, response, $"The request failed with unexpected status code '{statusCode}'.") { } #if NETSTANDARD2_1 /// /// Create a new . /// /// /// The response's HTTP status code. /// /// /// The response body. /// /// /// The exception message. /// public HttpRequestException(HttpStatusCode statusCode, TResponse response, string message) : base(message) { StatusCode = statusCode; Response = response; } #else // NETSTANDARD2_1 /// /// Create a new . /// /// /// The response's HTTP status code. /// /// /// The response body. /// /// /// The exception message. /// public HttpRequestException(HttpStatusCode statusCode, TResponse response, string message) : base(message, inner: null, statusCode) { Response = response; } #endif // NETSTANDARD2_1 #if NETSTANDARD2_1 /// /// The response's HTTP status code. /// public HttpStatusCode StatusCode { get; } #endif // NETSTANDARD2_1 /// /// The response body. /// public TResponse Response { get; } /// /// Create a new . /// /// /// The HTTP response status code. /// /// /// A representing the HTTP response body. /// /// /// The configured . /// public static HttpRequestException Create(HttpStatusCode statusCode, TResponse response) { string message = $"HTTP request failed ({statusCode})."; IHttpErrorResponse errorResponse = response as IHttpErrorResponse; if (errorResponse != null) message = errorResponse.GetExceptionMesage(); return new HttpRequestException(statusCode, response, message); } } } ================================================ FILE: src/KubeClient.Http/HttpRequestFactory.cs ================================================ using System; namespace KubeClient.Http { /// /// A facility for creating s. /// public sealed class HttpRequestFactory { /// /// Create a new . /// /// /// The used as a base for requests created by the factory. /// public HttpRequestFactory(HttpRequest baseRequest) { if (baseRequest == null) throw new ArgumentNullException(nameof(baseRequest)); BaseRequest = baseRequest; } /// /// The used as a base for requests created by the factory. /// public HttpRequest BaseRequest { get; } /// /// Create a new with the specified request URI. /// /// /// The request URI. /// /// /// The new . /// public HttpRequest Create(Uri requestUri) { if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); return BaseRequest.WithUri(requestUri); } } /// /// A facility for creating s. /// /// /// The type of object used as a context for resolving deferred parameters. /// public sealed class HttpRequestFactory { /// /// Create a new . /// /// /// The used as a base for requests created by the factory. /// public HttpRequestFactory(HttpRequest baseRequest) { if (baseRequest == null) throw new ArgumentNullException(nameof(baseRequest)); BaseRequest = baseRequest; } /// /// The used as a base for requests created by the factory. /// public HttpRequest BaseRequest { get; } /// /// Create a new with the specified request URI. /// /// /// The request URI. /// /// /// The new . /// public HttpRequest Create(Uri requestUri) { if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); return BaseRequest.WithUri(requestUri); } } } ================================================ FILE: src/KubeClient.Http/HttpRequestOfTContext.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Collections.Specialized; using System.Diagnostics; using System.Linq; using System.Net.Http; namespace KubeClient.Http { using Utilities; using ValueProviders; using RequestProperties = ImmutableDictionary; /// /// A template for an HTTP request that resolves deferred values from an instance of . /// /// /// The type of object used as a context for resolving deferred values. /// public class HttpRequest : HttpRequestBase, IHttpRequest { #region Constants /// /// The base properties for s. /// static readonly RequestProperties BaseProperties = new Dictionary { [nameof(RequestActions)] = ImmutableList>.Empty, [nameof(ResponseActions)] = ImmutableList>.Empty, [nameof(TemplateParameters)] = ImmutableDictionary>.Empty, [nameof(QueryParameters)] = ImmutableDictionary>.Empty } .ToImmutableDictionary(); /// /// An empty . /// public static HttpRequest Empty = new HttpRequest(BaseProperties); /// /// The default factory for s. /// public static HttpRequestFactory Factory { get; } = new HttpRequestFactory(Empty); #endregion // Constants #region Construction /// /// Create a new HTTP request. /// /// /// The request properties. /// HttpRequest(ImmutableDictionary properties) : base(properties) { EnsurePropertyType>>( propertyName: nameof(RequestActions) ); EnsurePropertyType>>( propertyName: nameof(TemplateParameters) ); EnsurePropertyType>>( propertyName: nameof(QueryParameters) ); } /// /// Create a new HTTP request with the specified request URI. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Create(string requestUri) => Factory.Create(requestUri); /// /// Create a new HTTP request with the specified request URI. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Create(Uri requestUri) => Factory.Create(requestUri); #endregion // Construction #region Properties /// /// Actions (if any) to perform on the outgoing request message. /// public ImmutableList> RequestActions => GetProperty>>(); /// /// Actions (if any) to perform on the incoming response message. /// public ImmutableList> ResponseActions => GetProperty>>(); /// /// The request's URI template parameters (if any). /// public ImmutableDictionary> TemplateParameters => GetProperty>>(); /// /// The request's query parameters (if any). /// public ImmutableDictionary> QueryParameters => GetProperty>>(); #endregion // Properties #region Invocation /// /// Build and configure a new HTTP request message. /// /// /// The HTTP request method to use. /// /// /// The object used as a context for resolving deferred template values. /// /// /// Optional representing the request body. /// /// /// An optional base URI to use if the request does not already have an absolute request URI. /// /// /// The configured . /// public HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, TContext context, HttpContent body = null, Uri baseUri = null) { if (httpMethod == null) throw new ArgumentNullException(nameof(httpMethod)); // Ensure we have an absolute URI. Uri requestUri = Uri; if (requestUri == null) throw new InvalidOperationException("Cannot build a request message; the request does not have a URI."); if (!requestUri.IsAbsoluteUri) { if (baseUri == null) throw new InvalidOperationException("Cannot build a request message; the request does not have an absolute request URI, and no base URI was supplied."); // Make relative to base URI. requestUri = baseUri.AppendRelativeUri(requestUri); } else { // Extract base URI to which request URI is already (by definition) relative. baseUri = new Uri( requestUri.GetComponents( UriComponents.Scheme | UriComponents.StrongAuthority, UriFormat.UriEscaped ) ); } if (IsUriTemplate) { UriTemplate template = new UriTemplate( requestUri.GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped) ); IDictionary templateParameterValues = GetTemplateParameterValues(context); requestUri = template.Populate(baseUri, templateParameterValues); } // Merge in any other query parameters defined directly on the request. requestUri = MergeQueryParameters(requestUri, context); HttpRequestMessage requestMessage = null; try { requestMessage = new HttpRequestMessage(httpMethod, requestUri); SetStandardMessageProperties(requestMessage); if (body != null) requestMessage.Content = body; List configurationActionExceptions = new List(); foreach (RequestAction requestAction in RequestActions) { if (requestAction == null) continue; try { requestAction(requestMessage, context); } catch (Exception eConfigurationAction) { configurationActionExceptions.Add(eConfigurationAction); } } if (configurationActionExceptions.Count > 0) { throw new AggregateException( "One or more unhandled exceptions were encountered while configuring the outgoing request message.", configurationActionExceptions ); } } catch { using (requestMessage) { throw; } } return requestMessage; } #endregion // Invocation #region IHttpRequest /// /// Actions (if any) to perform on the outgoing request message. /// IReadOnlyList> IHttpRequestProperties.RequestActions => RequestActions; /// /// Actions (if any) to perform on the outgoing request message. /// IReadOnlyList> IHttpRequestProperties.ResponseActions => ResponseActions; /// /// The request's URI template parameters (if any). /// IReadOnlyDictionary> IHttpRequestProperties.TemplateParameters => TemplateParameters; /// /// The request's query parameters (if any). /// IReadOnlyDictionary> IHttpRequestProperties.QueryParameters => QueryParameters; #endregion // IHttpRequest #region Cloning /// /// Clone the request. /// /// /// A delegate that performs modifications to the request properties. /// /// /// The cloned request. /// public new HttpRequest Clone(Action> modifications) { if (modifications == null) throw new ArgumentNullException(nameof(modifications)); return (HttpRequest)base.Clone(modifications); } /// /// Create a new instance of the HTTP request using the specified properties. /// /// /// The request properties. /// /// /// The new HTTP request instance. /// protected override HttpRequestBase CreateInstance(ImmutableDictionary requestProperties) { return new HttpRequest(requestProperties); } #endregion // Cloning #region Helpers /// /// Merge the request's query parameters (if any) into the request URI. /// /// /// The request URI. /// /// /// The from which parameter values will be resolved. /// /// /// The request URI with query parameters merged into it. /// Uri MergeQueryParameters(Uri requestUri, TContext context) { if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); if (QueryParameters.Count == 0) return requestUri; NameValueCollection queryParameters = requestUri.ParseQueryParameters(); foreach (KeyValuePair> queryParameter in QueryParameters) { string queryParameterValue = queryParameter.Value.Get(context); if (queryParameterValue != null) queryParameters[queryParameter.Key] = queryParameterValue; else queryParameters.Remove(queryParameter.Key); } return requestUri.WithQueryParameters(queryParameters); } /// /// Get a dictionary mapping template parameters (if any) to their current values. /// /// /// The from which parameter values will be resolved. /// /// /// A dictionary of key / value pairs (any parameters whose value-getters return null will be omitted). /// IDictionary GetTemplateParameterValues(TContext context) { return TemplateParameters.Select(templateParameter => { Debug.Assert(templateParameter.Value != null); return new { templateParameter.Key, Value = templateParameter.Value.Get(context) }; }) .Where( templateParameter => templateParameter.Value != null ) .ToDictionary( templateParameter => templateParameter.Key, templateParameter => templateParameter.Value ); } /// /// Configure standard properties for the specified . /// /// /// The . /// void SetStandardMessageProperties(HttpRequestMessage requestMessage) { if (requestMessage == null) throw new ArgumentNullException(nameof(requestMessage)); // TODO: Switch to HttpRequestOptions once we drop netstandard2.1 support. #pragma warning disable CS0618 // Type or member is obsolete requestMessage.Properties[MessageProperties.Request] = this; #pragma warning restore CS0618 // Type or member is obsolete } #endregion // Helpers } } ================================================ FILE: src/KubeClient.Http/HttpResponse.cs ================================================ using System; using System.Net.Http; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace KubeClient.Http { /// /// The response from an asynchronous invocation of an . /// public struct HttpResponse { /// /// Create a new . /// /// /// The request whose response is represented by the . /// /// /// The underlying represented by the . /// public HttpResponse(HttpRequest request, Task task) { if (request == null) throw new ArgumentNullException(nameof(request)); if (task == null) throw new ArgumentNullException(nameof(task)); Request = request; Task = task; } /// /// Create a new for the specified asynchronous action. /// /// /// The request whose response is represented by the . /// /// /// An asynchronous delegate that produces the action's resulting . /// public HttpResponse(HttpRequest request, Func> asyncAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (asyncAction == null) throw new ArgumentNullException(nameof(asyncAction)); Request = request; Task = asyncAction(); if (Task == null) throw new InvalidOperationException("The asynchronous action delegate returned null."); } /// /// The request whose response is represented by the . /// public HttpRequest Request { get; set; } /// /// The underlying represented by the . /// public Task Task { get; } // TODO: Considering something like Promise's "Then" method to encapsulate the construction of a new HttpResponse using the same HttpRequest but a new async action. /// /// Get an awaiter for the underlying represented by the . /// /// /// The task awaiter. /// /// /// Enables directly awaiting the . /// public TaskAwaiter GetAwaiter() => Task.GetAwaiter(); /// /// Configure the way that the response's task is awaited. /// /// /// Should the awaited task return to the ambient synchronisation context? /// /// /// A that can be awaited. /// public ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext) => Task.ConfigureAwait(continueOnCapturedContext); /// /// Implicit conversion from to /// /// /// The to convert. /// /// /// The 's . /// public static implicit operator Task(HttpResponse httpResponse) { return httpResponse.Task; } } } ================================================ FILE: src/KubeClient.Http/IHttpErrorResponse.cs ================================================ namespace KubeClient.Http { /// /// Represents an HTTP error response whose properties can be used to populate an . /// public interface IHttpErrorResponse { /// /// Get the exception message associated with the response. /// string GetExceptionMesage(); } } ================================================ FILE: src/KubeClient.Http/IHttpRequest.cs ================================================ using System; using System.Net.Http; namespace KubeClient.Http { /// /// Represents a template for building HTTP requests. /// public interface IHttpRequest : IHttpRequestProperties { /// /// Build and configure a new HTTP request message. /// /// /// The HTTP request method to use. /// /// /// Optional representing the request body. /// /// /// An optional base URI to use if the request builder does not already have an absolute request URI. /// /// /// The configured . /// HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, HttpContent body = null, Uri baseUri = null); } /// /// Represents a template for building HTTP requests with lazily-resolved values extracted from a specific context. /// /// /// The type of object used by the request when resolving deferred values. /// public interface IHttpRequest : IHttpRequestProperties { /// /// Build and configure a new HTTP request message. /// /// /// The HTTP request method to use. /// /// /// The to use as the context for resolving any deferred template or query parameters. /// /// /// Optional representing the request body. /// /// /// An optional base URI to use if the request builder does not already have an absolute request URI. /// /// /// The configured . /// HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, TContext context, HttpContent body = null, Uri baseUri = null); } } ================================================ FILE: src/KubeClient.Http/IHttpRequestProperties.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; namespace KubeClient.Http { using ValueProviders; /// /// Represents common properties of templates for building HTTP requests. /// public interface IHttpRequestProperties { /// /// The request URI. /// Uri Uri { get; } /// /// Is the request URI a template? /// bool IsUriTemplate { get; } /// /// Additional properties for the request. /// ImmutableDictionary Properties { get; } } /// /// Represents common properties of templates for building HTTP requests. /// /// /// The type of object used as a context for resolving deferred template parameters. /// public interface IHttpRequestProperties : IHttpRequestProperties { /// /// Actions (if any) to perform on the outgoing request message. /// IReadOnlyList> RequestActions { get; } /// /// Actions (if any) to perform on the outgoing request message. /// IReadOnlyList> ResponseActions { get; } /// /// The request's URI template parameters (if any). /// IReadOnlyDictionary> TemplateParameters { get; } /// /// The request's query parameters (if any). /// IReadOnlyDictionary> QueryParameters { get; } } } ================================================ FILE: src/KubeClient.Http/KubeClient.Http.csproj ================================================  net7.0;net8.0;net9.0;net10.0;netstandard2.1 HTTP support for KubeClient (dotnet-kube-client) ================================================ FILE: src/KubeClient.Http/MessageExtensions.cs ================================================ using System; using System.Net.Http; namespace KubeClient.Http { /// /// Extension methods for / . /// public static class MessageExtensions { /// /// Determine whether the request message has been configured for a streamed response. /// /// /// The HTTP request message. /// /// /// true, if the request message has been configured for a streamed response; otherwise, false. /// public static bool IsStreamed(this HttpRequestMessage message) { if (message == null) throw new ArgumentNullException(nameof(message)); object isStreamedValue; // TODO: Switch to HttpRequestOptions once we drop netstandard2.1 support. #pragma warning disable CS0618 // Type or member is obsolete message.Properties.TryGetValue(MessageProperties.IsStreamed, out isStreamedValue); #pragma warning restore CS0618 // Type or member is obsolete return (isStreamedValue as bool?) ?? false; } /// /// Mark the request message as configured for a streamed / buffered response. /// /// /// The HTTP request message. /// /// /// If true, the request message is configured for a streamed response; otherwise, it is configured for a buffered response. /// /// /// The HTTP request message (enables inline use). /// public static HttpRequestMessage MarkAsStreamed(this HttpRequestMessage message, bool isStreamed = true) { if (message == null) throw new ArgumentNullException(nameof(message)); // TODO: Switch to HttpRequestOptions once we drop netstandard2.1 support. #pragma warning disable CS0618 // Type or member is obsolete message.Properties[MessageProperties.IsStreamed] = isStreamed; #pragma warning restore CS0618 // Type or member is obsolete return message; } } } ================================================ FILE: src/KubeClient.Http/MessageProperties.cs ================================================ namespace KubeClient.Http { // TODO: Switch to HttpRequestOptions once we drop netstandard2.1 support. /// /// The names of well-known HttpRequestMessage / HttpResponseMessage properties. /// public static class MessageProperties { /// /// The prefix for KubeClient.Http property names. /// static readonly string Prefix = "KubeClient.Http."; /// /// The that created the message. /// public static readonly string Request = Prefix + "Request"; /// /// The message's collection of content formatters. /// public static readonly string ContentFormatters = Prefix + "ContentFormatters"; /// /// Is the request configured for a streamed response? /// public static readonly string IsStreamed = Prefix + "IsStreamed"; } } ================================================ FILE: src/KubeClient.Http/OtherHttpMethods.cs ================================================ using System.Net.Http; namespace KubeClient.Http { /// /// Additional standard HTTP methods. /// public static class OtherHttpMethods { /// /// The HTTP PATCH method. /// public static readonly HttpMethod Patch = new HttpMethod("PATCH"); } } ================================================ FILE: src/KubeClient.Http/README.md ================================================ # KubeClient.Http ## Introduction `KubeClient.Http` is a port of [HTTPlease](https://github.com/tintoy/HTTPlease), the HTTP client library that dotnet-kube-client was originally built on top of. A subset of HTTPlease functionality has now been folded into dotnet-kube-client so that consumers no longer need to reference HTTPlease or its dependencies. ================================================ FILE: src/KubeClient.Http/RequestActions.cs ================================================ using System.Net.Http; namespace KubeClient.Http { /// /// Delegate that performs configuration of an outgoing HTTP request message. /// /// /// The outgoing request message. /// public delegate void RequestAction(HttpRequestMessage requestMessage); /// /// Delegate that performs configuration of an outgoing HTTP request message. /// /// /// The type of object used by the request when resolving deferred parameters. /// /// /// The outgoing request message. /// /// /// The object used by the request when resolving deferred parameters. /// public delegate void RequestAction(HttpRequestMessage requestMessage, TContext context); } ================================================ FILE: src/KubeClient.Http/RequestExtensions.Headers.cs ================================================ using System; using System.Net.Http.Headers; namespace KubeClient.Http { using ValueProviders; /// /// / extension methods for HTTP headers. /// public static partial class RequestExtensions { /// /// Create a copy of the request that adds a header to each request. /// /// /// The HTTP request. /// /// /// The header name. /// /// /// The header value. /// /// /// Ensure that the header value is quoted? /// /// /// The new . /// public static HttpRequest WithHeader(this HttpRequest request, string headerName, string headerValue, bool ensureQuoted = false) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(headerName)); if (headerValue == null) throw new ArgumentNullException(nameof(headerValue)); return request.WithHeaderFromProvider(headerName, ValueProvider.FromConstantValue(headerValue), ensureQuoted ); } /// /// Create a copy of the request that adds a header with its value obtained from the specified delegate. /// /// /// The HTTP request. /// /// /// The header name. /// /// /// A delegate that returns the header value for each request. /// /// /// Ensure that the header value is quoted? /// /// /// The new . /// public static HttpRequest WithHeader(this HttpRequest request, string headerName, Func getValue, bool ensureQuoted = false) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'headerName'.", nameof(headerName)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeaderFromProvider(headerName, ValueProvider.FromFunction(getValue).Convert().ValueToString(), ensureQuoted ); } /// /// Create a copy of the request, but with the specified media type added to the "Accept" header. /// /// /// The HTTP request. /// /// /// The media-type name. /// /// /// An optional media-type quality. /// /// /// The new . /// public static HttpRequest AcceptMediaType(this HttpRequest request, string mediaType, double? quality = null) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(mediaType)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'mediaType'.", nameof(mediaType)); MediaTypeWithQualityHeaderValue mediaTypeHeader = quality.HasValue ? new MediaTypeWithQualityHeaderValue(mediaType, quality.Value) : new MediaTypeWithQualityHeaderValue(mediaType); return request.WithRequestAction(requestMessage => { requestMessage.Headers.Accept.Add(mediaTypeHeader); }); } /// /// Create a copy of the request, but with no media types in the "Accept" header. /// /// /// The HTTP request. /// /// /// The new . /// public static HttpRequest AcceptNoMediaTypes(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.WithRequestAction(requestMessage => { requestMessage.Headers.Accept.Clear(); }); } /// /// Create a copy of the request that adds an "If-Match" header to each request. /// /// /// The HTTP request. /// /// /// The header value. /// /// /// The new . /// public static HttpRequest WithIfMatchHeader(this HttpRequest request, string headerValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (headerValue == null) throw new ArgumentNullException(nameof(headerValue)); return request.WithHeader("If-Match", () => headerValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-Match" header with its value obtained from the specified delegate. /// /// /// The HTTP request. /// /// /// A delegate that returns the header value for each request. /// /// /// The new . /// public static HttpRequest WithIfMatchHeader(this HttpRequest request, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeader("If-Match", getValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-None-Match" header to each request. /// /// /// The HTTP request. /// /// /// The header value. /// /// /// The new . /// public static HttpRequest WithIfNoneMatchHeader(this HttpRequest request, string headerValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (headerValue == null) throw new ArgumentNullException(nameof(headerValue)); return request.WithHeader("If-None-Match", () => headerValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-None-Match" header with its value obtained from the specified delegate. /// /// /// The HTTP request. /// /// /// A delegate that returns the header value for each request. /// /// /// The new . /// public static HttpRequest WithIfNoneMatchHeader(this HttpRequest request, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeader("If-None-Match", getValue, ensureQuoted: true); } /// /// Create a copy of the request that adds a header to each request. /// /// /// The HTTP request. /// /// /// The header name. /// /// /// The header value provider. /// /// /// Ensure that the header value is quoted? /// /// /// The new . /// public static HttpRequest WithHeaderFromProvider(this HttpRequest request, string headerName, IValueProvider valueProvider, bool ensureQuoted = false) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(headerName)); if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); return request.WithRequestAction((requestMessage, context) => { requestMessage.Headers.Remove(headerName); string headerValue = valueProvider.Get(context); if (headerValue == null) return; if (ensureQuoted) headerValue = EnsureQuoted(headerValue); requestMessage.Headers.Add(headerName, headerValue); }); } } } ================================================ FILE: src/KubeClient.Http/RequestExtensions.Helpers.cs ================================================ using System; using System.Collections.Generic; using System.Reflection; using System.Text; namespace KubeClient.Http { using ValueProviders; /// /// Helper methods for / extensions. /// public static partial class RequestExtensions { /// /// Configure the request URI (and template status) in the request properties. /// /// /// The request properties to modify. /// /// /// The request URI. /// static void SetUri(this IDictionary requestProperties, Uri requestUri) { if (requestProperties == null) throw new ArgumentNullException(nameof(requestProperties)); if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); requestProperties[nameof(IHttpRequest.Uri)] = requestUri; requestProperties[nameof(IHttpRequest.IsUriTemplate)] = UriTemplate.IsTemplate(requestUri); } /// /// Ensure that the specified string is surrounted by quotes. /// /// /// The string to examine. /// /// /// The string, with quotes prepended / appended as required. /// /// /// Some HTTP headers (such as If-Match) require their values to be quoted. /// static string EnsureQuoted(string str) { if (str == null) throw new ArgumentNullException(nameof(str)); if (str.Length == 0) return "\"\""; StringBuilder quotedStringBuilder = new StringBuilder(str); if (quotedStringBuilder[0] != '\"') quotedStringBuilder.Insert(0, '\"'); if (quotedStringBuilder[quotedStringBuilder.Length - 1] != '\"') quotedStringBuilder.Append('\"'); return quotedStringBuilder.ToString(); } /// /// Convert the specified object's properties to deferred parameters. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The type of object whose properties will form the parameters. /// /// /// The object whose properties will form the parameters. /// /// /// A sequence of key / value pairs representing the parameters. /// static IEnumerable>> CreateDeferredParameters(this TParameters parameters) { if (Equals(parameters, null)) throw new ArgumentNullException(nameof(parameters)); // TODO: Refactor PropertyInfo retrieval logic (move it out to an extension method). // Yes yes yes, reflection might be "slow", but it's still blazingly fast compared to making a request over the network. foreach (PropertyInfo property in typeof(TParameters).GetTypeInfo().DeclaredProperties) { // Ignore write-only properties. if (!property.CanRead) continue; // Public instance properties only. if (!property.GetMethod.IsPublic || property.GetMethod.IsStatic) continue; yield return new KeyValuePair>( property.Name, ValueProvider.FromSelector( context => property.GetValue(parameters) ) .Convert().ValueToString() ); } } } } ================================================ FILE: src/KubeClient.Http/RequestExtensions.QueryParameters.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; namespace KubeClient.Http { using ValueProviders; /// /// / extension methods for query parameters. /// public static partial class RequestExtensions { /// /// Create a copy of the request builder with the specified request URI query parameter. /// /// /// The HTTP request. /// /// /// The parameter data-type. /// /// /// The parameter name. /// /// /// The parameter value. /// /// /// The new . /// public static HttpRequest WithQueryParameter(this HttpRequest request, string name, TParameter value) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); return request.WithQueryParameterFromProvider(name, ValueProvider.FromConstantValue(value?.ToString()) ); } /// /// Create a copy of the request builder with the specified request URI query parameter. /// /// /// The HTTP request. /// /// /// The parameter data-type. /// /// /// The parameter name. /// /// /// Delegate that returns the parameter value (cannot be null). /// /// /// The new . /// public static HttpRequest WithQueryParameter(this HttpRequest request, string name, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithQueryParameterFromProvider( name, ValueProvider.FromFunction(getValue) ); } /// /// Create a copy of the request builder with the specified request URI query parameter. /// /// /// The parameter data-type. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// Delegate that, given the current context, returns the parameter value (cannot be null). /// /// /// The new . /// public static HttpRequest WithQueryParameterFromProvider(this HttpRequest request, string name, IValueProvider valueProvider) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = request.QueryParameters.SetItem( key: name, value: valueProvider.Convert().ValueToString() ); }); } /// /// Create a copy of the request, but with query parameters from the specified object's properties. /// /// /// The type of object whose properties will form the parameters. /// /// /// The HTTP request. /// /// /// The object whose properties will form the parameters. /// /// /// The new . /// public static HttpRequest WithQueryParameters(this HttpRequest request, TParameters parameters) { if (parameters == null) throw new ArgumentNullException(nameof(parameters)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); return request.WithQueryParametersFromProviders( CreateDeferredParameters(parameters) ); } /// /// Create a copy of the request builder with the specified request URI query parameters. /// /// /// The HTTP request. /// /// /// A sequence of 0 or more key / value pairs representing the query parameters (values cannot be null). /// /// /// The new . /// public static HttpRequest WithQueryParametersFromProviders(this HttpRequest request, IEnumerable>> queryParameters) { if (request == null) throw new ArgumentNullException(nameof(request)); if (queryParameters == null) throw new ArgumentNullException(nameof(queryParameters)); bool modified = false; ImmutableDictionary>.Builder queryParametersBuilder = request.QueryParameters.ToBuilder(); foreach (KeyValuePair> queryParameter in queryParameters) { if (queryParameter.Value == null) { throw new ArgumentException( String.Format( "Query parameter '{0}' has a null getter; this is not supported.", queryParameter.Key ), nameof(queryParameters) ); } queryParametersBuilder[queryParameter.Key] = queryParameter.Value; modified = true; } if (!modified) return request; return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = queryParametersBuilder.ToImmutable(); }); } /// /// Create a copy of the request builder without the specified request URI query parameter. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// The new . /// public static HttpRequest WithoutQueryParameter(this HttpRequest request, string name) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (!request.QueryParameters.ContainsKey(name)) return request; return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = request.QueryParameters.Remove(name); }); } /// /// Create a copy of the request builder without the specified request URI query parameters. /// /// /// The HTTP request. /// /// /// The parameter names. /// /// /// The new . /// public static HttpRequest WithoutQueryParameters(this HttpRequest request, IEnumerable names) { if (names == null) throw new ArgumentNullException(nameof(names)); return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = request.QueryParameters.RemoveRange(names); }); } } } ================================================ FILE: src/KubeClient.Http/RequestExtensions.RequestActions.cs ================================================ using System; using System.Linq; namespace KubeClient.Http { /// /// / extension methods for request-configuration actions. /// public static partial class RequestExtensions { /// /// Create a copy of the request with the specified request-configuration action. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, RequestAction requestAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestAction == null) throw new ArgumentNullException(nameof(requestAction)); return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.Add( (message, context) => requestAction(message) ); }); } /// /// Create a copy of the request with the specified request-configuration action. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, RequestAction requestAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestAction == null) throw new ArgumentNullException(nameof(requestAction)); return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.Add(requestAction); }); } /// /// Create a copy of the request with the specified request-configuration actions. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, params RequestAction[] requestActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestActions == null) throw new ArgumentNullException(nameof(requestActions)); if (requestActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.AddRange( requestActions.Select(requestAction => { RequestAction requestActionWithContext = (message, context) => requestAction(message); return requestActionWithContext; }) ); }); } /// /// Create a copy of the request with the specified request-configuration actions. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, params RequestAction[] requestActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestActions == null) throw new ArgumentNullException(nameof(requestActions)); if (requestActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.AddRange(requestActions); }); } } } ================================================ FILE: src/KubeClient.Http/RequestExtensions.RequestUri.cs ================================================ using System; namespace KubeClient.Http { using Utilities; /// /// / extension methods for request URIs. /// public static partial class RequestExtensions { /// /// Ensure that the has an absolute URI. /// /// /// The request's absolute URI. /// /// /// The request has a relative URI. /// public static bool HasAbsoluteUri(this IHttpRequest httpRequest) { if (httpRequest == null) throw new ArgumentNullException(nameof(httpRequest)); return httpRequest.Uri.IsAbsoluteUri; } /// /// Ensure that the has an absolute URI. /// /// /// The request's absolute URI. /// /// /// The request has a relative URI. /// public static Uri EnsureAbsoluteUri(this IHttpRequest httpRequest) { if (httpRequest == null) throw new ArgumentNullException(nameof(httpRequest)); Uri requestUri = httpRequest.Uri; if (requestUri.IsAbsoluteUri) return requestUri; throw new InvalidOperationException("The HTTP request does not have an absolute URI."); } /// /// Create a copy of the request with the specified base URI. /// /// /// The request. /// /// /// The request base URI (must be absolute). /// /// /// The new . /// /// /// The request already has an absolute URI. /// public static HttpRequest WithBaseUri(this HttpRequest request, Uri baseUri) { if (request == null) throw new ArgumentNullException(nameof(request)); if (baseUri == null) throw new ArgumentNullException(nameof(baseUri)); if (!baseUri.IsAbsoluteUri) throw new ArgumentException("The supplied base URI is not an absolute URI.", nameof(baseUri)); if (request.Uri.IsAbsoluteUri) throw new InvalidOperationException("The request already has an absolute URI."); return request.Clone(properties => { properties.SetUri( baseUri.AppendRelativeUri(request.Uri) ); }); } /// /// Create a copy of the request with the specified request URI. /// /// /// The request. /// /// /// The new request URI. /// /// /// The new . /// public static HttpRequest WithUri(this HttpRequest request, Uri requestUri) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); return request.Clone(properties => { properties.SetUri(requestUri); }); } /// /// Create a copy of the request with the specified request URI appended to its existing URI. /// /// /// The request. /// /// /// The relative request URI. /// /// /// The new . /// public static HttpRequest WithRelativeUri(this HttpRequest request, string relativeUri) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(relativeUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'relativeUri'.", nameof(relativeUri)); return request.WithRelativeUri( new Uri(relativeUri, UriKind.Relative) ); } /// /// Create a copy of the request with the specified request URI appended to its existing URI. /// /// /// The request. /// /// /// The relative request URI. /// /// /// The new . /// public static HttpRequest WithRelativeUri(this HttpRequest request, Uri relativeUri) { if (relativeUri == null) throw new ArgumentNullException(nameof(relativeUri)); if (relativeUri.IsAbsoluteUri) throw new ArgumentException("The specified URI is not a relative URI.", nameof(relativeUri)); return request.Clone(properties => { properties.SetUri( request.Uri.AppendRelativeUri(relativeUri) ); }); } } } ================================================ FILE: src/KubeClient.Http/RequestExtensions.ResponseActions.cs ================================================ using System; using System.Linq; namespace KubeClient.Http { /// /// / extension methods for response-processing actions. /// public static partial class RequestExtensions { /// /// Create a copy of the request with the specified response-processing action. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, ResponseAction responseAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseAction == null) throw new ArgumentNullException(nameof(responseAction)); return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.Add( (message, context) => responseAction(message) ); }); } /// /// Create a copy of the request with the specified response-processing action. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, ResponseAction responseAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseAction == null) throw new ArgumentNullException(nameof(responseAction)); return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.Add(responseAction); }); } /// /// Create a copy of the request with the specified response-processing actions. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, params ResponseAction[] responseActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseActions == null) throw new ArgumentNullException(nameof(responseActions)); if (responseActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.AddRange( responseActions.Select(responseAction => { ResponseAction responseActionWithContext = (message, context) => responseAction(message); return responseActionWithContext; }) ); }); } /// /// Create a copy of the request with the specified response-processing actions. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, params ResponseAction[] responseActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseActions == null) throw new ArgumentNullException(nameof(responseActions)); if (responseActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.AddRange(responseActions); }); } } } ================================================ FILE: src/KubeClient.Http/RequestExtensions.TemplateParameters.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; namespace KubeClient.Http { using ValueProviders; /// /// / extension methods for template parameters. /// public static partial class RequestExtensions { /// /// Create a copy of the request builder with the specified request URI template parameter. /// /// /// The HTTP request. /// /// /// The parameter data-type. /// /// /// The parameter name. /// /// /// The parameter value. /// /// /// The new . /// public static HttpRequest WithTemplateParameter(this HttpRequest request, string name, TParameter value) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); return request.WithTemplateParameterFromProvider(name, ValueProvider.FromConstantValue(value?.ToString()) ); } /// /// Create a copy of the request builder with the specified request URI template parameter. /// /// /// The HTTP request. /// /// /// The parameter data-type. /// /// /// The parameter name. /// /// /// Delegate that returns the parameter value (cannot be null). /// /// /// The new . /// public static HttpRequest WithTemplateParameter(this HttpRequest request, string name, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithTemplateParameterFromProvider(name, ValueProvider.FromFunction(getValue).Convert().ValueToString() ); } /// /// Create a copy of the request builder with the specified request URI template parameter. /// /// /// The HTTP request. /// /// /// The parameter data-type. /// /// /// The parameter name. /// /// /// A value provider that, given the current context, returns the parameter value. /// /// /// The new . /// public static HttpRequest WithTemplateParameterFromProvider(this HttpRequest request, string name, IValueProvider valueProvider) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = request.TemplateParameters.SetItem( key: name, value: valueProvider.Convert().ValueToString() ); }); } /// /// Create a copy of the request, but with template parameters from the specified object's properties. /// /// /// The type of object whose properties will form the parameters. /// /// /// The HTTP request. /// /// /// The object whose properties will form the parameters. /// /// /// The new . /// public static HttpRequest WithTemplateParameters(this HttpRequest request, TParameters parameters) { if (parameters == null) throw new ArgumentNullException(nameof(parameters)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); return request.WithTemplateParametersFromProviders( CreateDeferredParameters(parameters) ); } /// /// Create a copy of the request builder with the specified request URI template parameters. /// /// /// The HTTP request. /// /// /// A sequence of 0 or more key / value pairs representing the template parameters (values cannot be null). /// /// /// The new . /// public static HttpRequest WithTemplateParametersFromProviders(this HttpRequest request, IEnumerable>> templateParameters) { if (request == null) throw new ArgumentNullException(nameof(request)); if (templateParameters == null) throw new ArgumentNullException(nameof(templateParameters)); bool modified = false; ImmutableDictionary>.Builder templateParametersBuilder = request.TemplateParameters.ToBuilder(); foreach (KeyValuePair> templateParameter in templateParameters) { if (templateParameter.Value == null) { throw new ArgumentException( String.Format( "Template parameter '{0}' has a null getter; this is not supported.", templateParameter.Key ), nameof(templateParameters) ); } templateParametersBuilder[templateParameter.Key] = templateParameter.Value; modified = true; } if (!modified) return request; return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = templateParametersBuilder.ToImmutable(); }); } /// /// Create a copy of the request builder without the specified request URI template parameter. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// The new . /// public static HttpRequest WithoutTemplateParameter(this HttpRequest request, string name) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (!request.TemplateParameters.ContainsKey(name)) return request; return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = request.TemplateParameters.Remove(name); }); } /// /// Create a copy of the request builder without the specified request URI template parameters. /// /// /// The HTTP request. /// /// /// The parameter names. /// /// /// The new . /// public static HttpRequest WithoutTemplateParameters(this HttpRequest request, IEnumerable names) { if (request == null) throw new ArgumentNullException(nameof(request)); if (names == null) throw new ArgumentNullException(nameof(names)); return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = request.TemplateParameters.RemoveRange(names); }); } } } ================================================ FILE: src/KubeClient.Http/RequestHeaderExtensions.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Net.Http.Headers; namespace KubeClient.Http { /// /// Extension method for /// public static class RequestHeaderExtensions { /// /// Retrieve the value of an optional HTTP request header. /// /// /// The HTTP request headers to examine. /// /// /// The name of the target header. /// /// /// The header value, or null if the header is not present (or an string if the header is present but has no value). /// public static string GetOptionalHeaderValue(this HttpRequestHeaders requestHeaders, string headerName) { if (requestHeaders == null) throw new ArgumentNullException(nameof(requestHeaders)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'headerName'.", nameof(headerName)); IEnumerable headerValues; if (!requestHeaders.TryGetValues(headerName, out headerValues)) return null; return headerValues.DefaultIfEmpty( String.Empty ) .FirstOrDefault(); } } } ================================================ FILE: src/KubeClient.Http/ResponseActions.cs ================================================ using System.Net.Http; namespace KubeClient.Http { /// /// Delegate that performs processing of an incoming HTTP response message. /// /// /// The incoming response message. /// public delegate void ResponseAction(HttpResponseMessage responseMessage); /// /// Delegate that performs processing of an incoming HTTP response message. /// /// /// The type of object used by the response when resolving deferred parameters. /// /// /// The incoming response message. /// /// /// The object used by the response when resolving deferred parameters. /// public delegate void ResponseAction(HttpResponseMessage responseMessage, TContext context); } ================================================ FILE: src/KubeClient.Http/Templates/ITemplateEvaluationContext.cs ================================================ using System; using System.Collections.Generic; namespace KubeClient.Http.Templates { /// /// Represents the evaluation context for a URI template. /// interface ITemplateEvaluationContext { /// /// Determine whether the specified parameter is defined. /// /// /// The parameter name. /// /// /// true, if the parameter is defined; otherwise, false. /// bool IsParameterDefined(string parameterName); /// /// The value of the specified template parameter /// /// /// The name of the template parameter. /// /// /// Is the parameter optional? If so, return null if it is not present, rather than throwing an exception. /// /// Default is true. /// /// /// The parameter value, or null. /// /// /// is null, empty, or entirely composed of whitespace. /// /// /// The parameter is not , and is not preset. /// string this[string parameterName, bool isOptional = false] { get; } } } ================================================ FILE: src/KubeClient.Http/Templates/LiteralQuerySegment.cs ================================================ using System; namespace KubeClient.Http.Templates { /// /// A template segment that represents a literal query parameter (i.e. one that has a constant value). /// sealed class LiteralQuerySegment : QuerySegment { /// /// The value for the query parameter that the segment represents. /// readonly string _queryParameterValue; /// /// Create a new literal query segment. /// /// /// The name of the query parameter that the segment represents. /// /// /// The value for the query parameter that the segment represents. /// public LiteralQuerySegment(string queryParameterName, string queryParameterValue) : base(queryParameterName) { if (String.IsNullOrWhiteSpace(queryParameterValue)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'value'.", nameof(queryParameterValue)); _queryParameterValue = queryParameterValue; } /// /// The value for the query parameter that the segment represents. /// public string QueryParameterValue { get { return _queryParameterValue; } } /// /// Get the value of the segment (if any). /// /// /// The current template evaluation context. /// /// /// The segment value, or null if the segment has no value. /// public override string GetValue(ITemplateEvaluationContext evaluationContext) { if (evaluationContext == null) throw new ArgumentNullException(nameof(evaluationContext)); return _queryParameterValue; } } } ================================================ FILE: src/KubeClient.Http/Templates/LiteralUriSegment.cs ================================================ using System; namespace KubeClient.Http.Templates { /// /// Represents a literal URI segment (i.e. one that has a constant value). /// sealed class LiteralUriSegment : UriSegment { /// /// The segment value; /// readonly string _value; /// /// Create a new literal URI segment. /// /// /// The segment value. /// /// /// Does the segment represent a directory (i.e. have a trailing slash?). /// public LiteralUriSegment(string value, bool isDirectory) : base(isDirectory) { if (String.IsNullOrWhiteSpace(value)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'value'.", nameof(value)); _value = value; } /// /// The segment value; /// public string Value { get { return _value; } } /// /// Get the value of the segment (if any). /// /// /// The current template evaluation context. /// /// /// The segment value, or null if the segment is missing. /// public override string GetValue(ITemplateEvaluationContext evaluationContext) { if (evaluationContext == null) throw new ArgumentNullException(nameof(evaluationContext)); return _value; } } } ================================================ FILE: src/KubeClient.Http/Templates/ParameterizedQuerySegment.cs ================================================ using System; namespace KubeClient.Http.Templates { /// /// A template segment that represents a query parameter whose value comes from a template parameter. /// sealed class ParameterizedQuerySegment : QuerySegment { /// /// The name of the template parameter whose value becomes the query parameter. /// readonly string _templateParameterName; /// /// Is the segment optional? /// /// /// If true, then the query parameter will be omitted if its associated template variable is not defined. /// readonly bool _isOptional; /// /// Create a new literal query segment. /// /// /// The name of the query parameter that the segment represents. /// /// /// The value for the query parameter that the segment represents. /// /// /// Is the segment optional? /// public ParameterizedQuerySegment(string queryParameterName, string templateParameterName, bool isOptional = false) : base(queryParameterName) { if (String.IsNullOrWhiteSpace(templateParameterName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'value'.", nameof(templateParameterName)); _templateParameterName = templateParameterName; _isOptional = isOptional; } /// /// The name of the template parameter whose value becomes the query parameter. /// public string TemplateParameterName { get { return _templateParameterName; } } /// /// Is the segment optional? /// /// /// If true, then the query parameter will be omitted if its associated template variable is not defined. /// public bool IsOptional { get { return _isOptional; } } /// /// Does the segment have a parameterised (non-constant) value? /// public override bool IsParameterized => true; /// /// Get the value of the segment (if any). /// /// /// The current template evaluation context. /// /// /// The segment value, or null if the segment has no value. /// public override string GetValue(ITemplateEvaluationContext evaluationContext) { if (evaluationContext == null) throw new ArgumentNullException(nameof(evaluationContext)); return evaluationContext[_templateParameterName, _isOptional]; } } } ================================================ FILE: src/KubeClient.Http/Templates/ParameterizedUriSegment.cs ================================================ using System; namespace KubeClient.Http.Templates { /// /// Represents a literal URI segment (i.e. one that has a constant value). /// sealed class ParameterizedUriSegment : UriSegment { /// /// The name of the parameter from which the URI segment obtains its value. /// readonly string _templateParameterName; /// /// Is the segment optional? /// /// /// If true, then the segment is not rendered when its associated parameter is missing. /// readonly bool _isOptional; /// /// Create a new literal URI segment. /// /// /// The name of the parameter from which the URI segment obtains its value. /// /// /// Does the segment represent a directory (i.e. have a trailing slash?). /// /// /// Is the segment optional? /// /// Default is false. /// public ParameterizedUriSegment(string templateParameterName, bool isDirectory, bool isOptional = false) : base(isDirectory) { if (String.IsNullOrWhiteSpace(templateParameterName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'value'.", nameof(templateParameterName)); _templateParameterName = templateParameterName; _isOptional = isOptional; } /// /// The name of the parameter from which the URI segment obtains its value. /// public string TemplateParameterName { get { return _templateParameterName; } } /// /// Is the segment optional? /// /// /// If true, then the segment is not rendered when its associated parameter is missing. /// public bool IsOptional { get { return _isOptional; } } /// /// Does the segment have a parameterised (non-constant) value? /// public override bool IsParameterized => true; /// /// Get the value of the segment (if any). /// /// /// The current template evaluation context. /// /// /// The segment value, or null if the segment is missing. /// public override string GetValue(ITemplateEvaluationContext evaluationContext) { if (evaluationContext == null) throw new ArgumentNullException(nameof(evaluationContext)); return evaluationContext[_templateParameterName, _isOptional]; } } } ================================================ FILE: src/KubeClient.Http/Templates/QuerySegment.cs ================================================ using System; namespace KubeClient.Http.Templates { /// /// The base class for template segments that represent components of a URI's query. /// abstract class QuerySegment : TemplateSegment { /// /// The name of the query parameter that the segment represents. /// readonly string _queryParameterName; /// /// Create a new query segment. /// /// /// The name of the query parameter that the segment represents. /// protected QuerySegment(string queryParameterName) { if (String.IsNullOrWhiteSpace(queryParameterName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'queryParameterName'.", nameof(queryParameterName)); _queryParameterName = queryParameterName; } /// /// The name of the query parameter that the segment represents. /// public string QueryParameterName { get { return _queryParameterName; } } } } ================================================ FILE: src/KubeClient.Http/Templates/RootUriSegment.cs ================================================ using System; namespace KubeClient.Http.Templates { /// /// A literal URI segment representing the root folder ("/"). /// sealed class RootUriSegment : UriSegment { /// /// The singleton instance of the root URI segment. /// public static readonly RootUriSegment Instance = new RootUriSegment(); /// /// Create a new literal URI segment. /// RootUriSegment() : base(isDirectory: true) { } /// /// Get the value of the segment (if any). /// /// /// The current template evaluation context. /// /// /// The segment value, or null if the segment is missing. /// public override string GetValue(ITemplateEvaluationContext evaluationContext) { if (evaluationContext == null) throw new ArgumentNullException(nameof(evaluationContext)); return String.Empty; } } } ================================================ FILE: src/KubeClient.Http/Templates/TemplateEvaluationContext.cs ================================================ using System; using System.Collections.Generic; namespace KubeClient.Http.Templates { /// /// The default evaluation context for a URI template. /// sealed class TemplateEvaluationContext : ITemplateEvaluationContext { /// /// The template parameters. /// readonly Dictionary _templateParameters = new Dictionary(); /// /// Create a new template evaluation context. /// public TemplateEvaluationContext() { } /// /// Create a new template evaluation context. /// /// /// A dictionary of template parameters (and their values) used to populate the evaluation context. /// public TemplateEvaluationContext(IDictionary templateParameters) { if (templateParameters == null) throw new ArgumentNullException(nameof(templateParameters)); foreach (KeyValuePair templateParameter in templateParameters) _templateParameters[templateParameter.Key] = templateParameter.Value; } /// /// The template parameters. /// public Dictionary TemplateParameters { get { return _templateParameters; } } /// /// Determine whether the specified parameter is defined. /// /// /// The parameter name. /// /// /// true, if the parameter is defined; otherwise, false. /// public bool IsParameterDefined(string parameterName) { if (String.IsNullOrWhiteSpace(parameterName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'parameterName'.", nameof(parameterName)); return _templateParameters.ContainsKey(parameterName); } /// /// The value of the specified template parameter /// /// /// The name of the template parameter. /// /// /// Is the parameter optional? If so, return null if it is not present, rather than throwing an exception. /// /// Default is true. /// /// /// The parameter value, or null. /// /// /// is null, empty, or entirely composed of whitespace. /// /// /// The parameter is not , and is not preset. /// public string this[string parameterName, bool isOptional] { get { if (String.IsNullOrWhiteSpace(parameterName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'parameterName'.", nameof(parameterName)); string parameterValue; if (!_templateParameters.TryGetValue(parameterName, out parameterValue)) { if (!isOptional) throw new UriTemplateException($"Required template parameter '{parameterName}' is not defined."); } return parameterValue; } } } } ================================================ FILE: src/KubeClient.Http/Templates/TemplateSegment.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace KubeClient.Http.Templates { /// /// The base class for the segments that comprise a URI template. /// abstract class TemplateSegment { /// /// The regular expression used to match variables. /// static readonly Regex VariableRegex = new Regex( @"\{(?\w+)(?\?)?\}\/?", RegexOptions.Compiled | RegexOptions.Singleline ); /// /// Create a new URI template segment. /// protected TemplateSegment() { } /// /// Does the segment have a parameterised (non-constant) value? /// public virtual bool IsParameterized => true; /// /// Get the value of the segment (if any). /// /// /// The current template evaluation context. /// /// /// The segment value, or null if the segment has no value. /// public abstract string GetValue(ITemplateEvaluationContext evaluationContext); /// /// Parse the specified URI into template segments. /// /// /// The URI to parse. /// /// /// The template segments. /// public static IReadOnlyList Parse(string template) { if (template == null) throw new ArgumentNullException(nameof(template)); List segments = new List(); try { Uri templateUri = new Uri( new Uri("http://localhost/"), template.Replace("?}", "%3F}") // Special case for '?' because it messes with Uri's parser. ); segments.AddRange( ParsePathSegments(templateUri) ); segments.AddRange( ParseQuerySegments(templateUri) ); } catch (Exception eParse) { throw new UriTemplateException(eParse, $"'{template}' is not a valid URI template."); } return segments; } /// /// Parse URI segments from the specified template. /// /// /// The URI template. /// /// /// A sequence of 0 or more URI segments. /// static IEnumerable ParsePathSegments(Uri template) { if (template == null) throw new ArgumentNullException(nameof(template)); bool haveRoot = false; bool isLastSegmentDirectory = template.AbsolutePath[template.AbsolutePath.Length - 1] == '/'; string[] pathSegments = template.AbsolutePath .Split('/') .Select( segment => Uri.UnescapeDataString(segment) ) .ToArray(); int lastSegmentIndex = pathSegments.Length - 1; for (int segmentIndex = 0; segmentIndex < pathSegments.Length; segmentIndex++) { string pathSegment = pathSegments[segmentIndex]; if (pathSegment != String.Empty) { bool isDirectory = isLastSegmentDirectory || segmentIndex < lastSegmentIndex; Match variableMatch = VariableRegex.Match(pathSegment); if (variableMatch.Success) { string templateParameterName = variableMatch.Groups["VariableName"].Value; if (String.IsNullOrWhiteSpace(templateParameterName)) yield return new LiteralUriSegment(pathSegment, isDirectory); bool isOptional = variableMatch.Groups["VariableIsOptional"].Value.Length > 0; yield return new ParameterizedUriSegment(templateParameterName, isDirectory, isOptional); } else yield return new LiteralUriSegment(pathSegment, isDirectory); } else { if (haveRoot) continue; haveRoot = true; yield return RootUriSegment.Instance; } } } /// /// Parse query segments from the specified template. /// /// /// The URI template. /// /// /// A sequence of 0 or more query segments. /// static IEnumerable ParseQuerySegments(Uri template) { if (template == null) throw new ArgumentNullException(nameof(template)); if (template.Query == String.Empty) yield break; string[] queryParameters = template.Query.Substring(1).Split( separator: new char[] { '&' }, options: StringSplitOptions.RemoveEmptyEntries ); foreach (string queryParameter in queryParameters) { string[] parameterNameAndValue = queryParameter.Split( separator: new char[] { '=' }, count: 2 ); if (parameterNameAndValue.Length != 2) continue; // Remove parameter. string queryParameterName = parameterNameAndValue[0]; string queryParameterValue = Uri.UnescapeDataString(parameterNameAndValue[1]); Match variableMatch = VariableRegex.Match(queryParameterValue); if (variableMatch.Success) { string templateParameterName = variableMatch.Groups["VariableName"].Value; if (String.IsNullOrWhiteSpace(templateParameterName)) yield return new LiteralQuerySegment(queryParameterName, queryParameterValue); bool isOptional = variableMatch.Groups["VariableIsOptional"].Value.Length > 0; yield return new ParameterizedQuerySegment(queryParameterName, templateParameterName, isOptional); } else yield return new LiteralQuerySegment(queryParameterName, queryParameterValue); } } } } ================================================ FILE: src/KubeClient.Http/Templates/UriSegment.cs ================================================ namespace KubeClient.Http.Templates { /// /// The base class for URI template segments that represent segments of the URI. /// abstract class UriSegment : TemplateSegment { /// /// Does the segment represent a directory (i.e. have a trailing slash?). /// readonly bool _isDirectory; /// /// Create a new URI segment. /// /// /// Does the segment represent a directory (i.e. have a trailing slash?). /// protected UriSegment(bool isDirectory) { _isDirectory = isDirectory; } /// /// Does the segment represent a directory (i.e. have a trailing slash?). /// public bool IsDirectory { get { return _isDirectory; } } } } ================================================ FILE: src/KubeClient.Http/TypedClientExtensions.cs ================================================ using System.Collections.Generic; using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Http { /// /// Invocation-related extension methods for s that use an . /// public static class TypedClientExtensions { #region Invoke /// /// Asynchronously execute a request as an HTTP HEAD. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The instance used as a context for resolving deferred parameters. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task HeadAsync(this HttpClient httpClient, HttpRequest request, TContext context, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Head, context, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP GET. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The instance used as a context for resolving deferred parameters. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task GetAsync(this HttpClient httpClient, HttpRequest request, TContext context, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Get, context, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP POST. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The instance used as a context for resolving deferred parameters. /// /// /// Optional representing the request body. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PostAsync(this HttpClient httpClient, HttpRequest request, TContext context, HttpContent postBody = null, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Post, context, postBody, cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP PUT. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The instance used as a context for resolving deferred parameters. /// /// /// representing the request body. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PutAsync(this HttpClient httpClient, HttpRequest request, TContext context, HttpContent putBody, CancellationToken cancellationToken = default) { if (httpClient == null) throw new ArgumentNullException(nameof(httpClient)); if (request == null) throw new ArgumentNullException(nameof(request)); if (putBody == null) throw new ArgumentNullException(nameof(putBody)); return await httpClient.SendAsync(request, HttpMethod.Put, context, putBody, cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP PATCH. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The instance used as a context for resolving deferred parameters. /// /// /// representing the request body. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task PatchAsync(this HttpClient httpClient, HttpRequest request, TContext context, HttpContent patchBody, CancellationToken cancellationToken = default) { if (request == null) throw new ArgumentNullException(nameof(request)); if (patchBody == null) throw new ArgumentNullException(nameof(patchBody)); return await httpClient.SendAsync(request, OtherHttpMethods.Patch, context, patchBody, cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute a request as an HTTP DELETE. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// The instance used as a context for resolving deferred parameters. /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task DeleteAsync(this HttpClient httpClient, HttpRequest request, TContext context, CancellationToken cancellationToken = default) { if (request == null) throw new ArgumentNullException(nameof(request)); return await httpClient.SendAsync(request, HttpMethod.Delete, context, cancellationToken: cancellationToken).ConfigureAwait(false); } /// /// Asynchronously execute the request using the specified HTTP method. /// /// /// The used to execute the request. /// /// /// The HTTP request. /// /// /// An representing the method to use. /// /// /// The instance used as a context for resolving deferred parameters. /// /// /// Optional representing the request body (if any). /// /// /// An optional cancellation token that can be used to cancel the asynchronous operation. /// /// /// An representing the response. /// public static async Task SendAsync(this HttpClient httpClient, HttpRequest request, HttpMethod method, TContext context, HttpContent body = null, CancellationToken cancellationToken = default) { if (request == null) throw new ArgumentNullException(nameof(request)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(method, context, body, httpClient.BaseAddress)) { HttpResponseMessage responseMessage = await httpClient.SendAsync(requestMessage, cancellationToken).ConfigureAwait(false); try { request.ExecuteResponseActions(responseMessage, context); } catch { using (responseMessage) { throw; } } return responseMessage; } } #endregion // Invoke #region Helpers /// /// Execute the request's configured response actions (if any) against the specified response message. /// /// /// The . /// /// /// The HTTP response message. /// /// /// The used as a context for resolving deferred values. /// static void ExecuteResponseActions(this HttpRequest request, HttpResponseMessage responseMessage, TContext context) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseMessage == null) throw new ArgumentNullException(nameof(responseMessage)); List responseActionExceptions = new List(); foreach (ResponseAction responseAction in request.ResponseActions) { try { responseAction(responseMessage, context); } catch (Exception eResponseAction) { responseActionExceptions.Add(eResponseAction); } } if (responseActionExceptions.Count > 0) throw new AggregateException("One or more errors occurred while processing the response message.", responseActionExceptions); } #endregion // Helpers } } ================================================ FILE: src/KubeClient.Http/TypedFactoryExtensions.cs ================================================ using System; namespace KubeClient.Http { /// /// Extension methods for . /// public static class TypedFactoryExtensions { /// /// Create a new HTTP request with the specified request URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request factory. /// /// /// The request URI (can be relative or absolute). /// /// /// The new . /// public static HttpRequest Create(this HttpRequestFactory requestFactory, string requestUri) { if (requestFactory == null) throw new ArgumentNullException(nameof(requestFactory)); if (String.IsNullOrWhiteSpace(requestUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'requestUri'.", nameof(requestUri)); return requestFactory.Create( new Uri(requestUri, UriKind.RelativeOrAbsolute) ); } } } ================================================ FILE: src/KubeClient.Http/TypedRequestExtensions.Headers.cs ================================================ using System; using System.Net.Http.Headers; namespace KubeClient.Http { using ValueProviders; /// /// / extension methods for HTTP headers. /// public static partial class TypedRequestExtensions { /// /// Create a copy of the request that adds a header to each request. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The header value data-type. /// /// /// The HTTP request. /// /// /// The header name. /// /// /// The header value. /// /// /// Ensure that the header value is quoted? /// /// /// The new . /// public static HttpRequest WithHeader(this HttpRequest request, string headerName, TValue headerValue, bool ensureQuoted = false) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(headerName)); if (headerValue == null) throw new ArgumentNullException(nameof(headerValue)); return request.WithHeaderFromProvider(headerName, ValueProvider.FromConstantValue(headerValue).Convert().ValueToString(), ensureQuoted ); } /// /// Create a copy of the request that adds a header with its value obtained from the specified delegate. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The type of header value to add. /// /// /// The HTTP request. /// /// /// The header name. /// /// /// A delegate that returns the header value for each request. /// /// /// Ensure that the header value is quoted? /// /// /// The new . /// public static HttpRequest WithHeader(this HttpRequest request, string headerName, Func getValue, bool ensureQuoted = false) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(headerName)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeaderFromProvider(headerName, ValueProvider.FromFunction(getValue).Convert().ValueToString(), ensureQuoted ); } /// /// Create a copy of the request that adds a header with its value obtained from the specified delegate. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The type of header value to add. /// /// /// The HTTP request. /// /// /// The header name. /// /// /// A delegate that extracts the header value from the context for each request. /// /// /// Ensure that the header value is quoted? /// /// /// The new . /// public static HttpRequest WithHeader(this HttpRequest request, string headerName, Func getValue, bool ensureQuoted = false) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(headerName)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeaderFromProvider(headerName, ValueProvider.FromSelector(getValue).Convert().ValueToString(), ensureQuoted ); } /// /// Create a copy of the request, but with the specified media type added to the "Accept" header. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// The media-type name. /// /// /// An optional media-type quality. /// /// /// The new . /// public static HttpRequest AcceptMediaType(this HttpRequest request, string mediaType, double? quality = null) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(mediaType)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'mediaType'.", nameof(mediaType)); MediaTypeWithQualityHeaderValue mediaTypeHeader = quality.HasValue ? new MediaTypeWithQualityHeaderValue(mediaType, quality.Value) : new MediaTypeWithQualityHeaderValue(mediaType); return request.WithRequestAction(requestMessage => { requestMessage.Headers.Accept.Add(mediaTypeHeader); }); } /// /// Create a copy of the request, but with no media types in the "Accept" header. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// The new . /// public static HttpRequest AcceptNoMediaTypes(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.WithRequestAction(requestMessage => { requestMessage.Headers.Accept.Clear(); }); } /// /// Create a copy of the request that adds an "If-Match" header to each request. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// The header value. /// /// /// The new . /// public static HttpRequest WithIfMatchHeader(this HttpRequest request, string headerValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (headerValue == null) throw new ArgumentNullException(nameof(headerValue)); return request.WithHeader("If-Match", () => headerValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-Match" header with its value obtained from the specified delegate. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that extracts the header value from the context for each request. /// /// /// The new . /// public static HttpRequest WithIfMatchHeader(this HttpRequest request, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeader("If-Match", getValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-Match" header with its value obtained from the specified delegate. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that returns the header value for each request. /// /// /// The new . /// public static HttpRequest WithIfMatchHeader(this HttpRequest request, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeader("If-Match", getValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-None-Match" header to each request. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// The header value. /// /// /// The new . /// public static HttpRequest WithIfNoneMatchHeader(this HttpRequest request, string headerValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (headerValue == null) throw new ArgumentNullException(nameof(headerValue)); return request.WithHeader("If-None-Match", () => headerValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-None-Match" header with its value obtained from the specified delegate. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that extracts the header value from the context for each request. /// /// /// The new . /// public static HttpRequest WithIfNoneMatchHeader(this HttpRequest request, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeader("If-None-Match", getValue, ensureQuoted: true); } /// /// Create a copy of the request that adds an "If-None-Match" header with its value obtained from the specified delegate. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that returns the header value for each request. /// /// /// The new . /// public static HttpRequest WithIfNoneMatchHeader(this HttpRequest request, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithHeader("If-None-Match", getValue, ensureQuoted: true); } /// /// Create a copy of the request that adds a header to each request. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// The header name. /// /// /// The header value provider. /// /// /// Ensure that the header value is quoted? /// /// /// The new . /// public static HttpRequest WithHeaderFromProvider(this HttpRequest request, string headerName, IValueProvider valueProvider, bool ensureQuoted = false) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(headerName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(headerName)); if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); return request.WithRequestAction((requestMessage, context) => { requestMessage.Headers.Remove(headerName); string headerValue = valueProvider.Get(context); if (headerValue == null) return; if (ensureQuoted) headerValue = EnsureQuoted(headerValue); requestMessage.Headers.Add(headerName, headerValue); }); } } } ================================================ FILE: src/KubeClient.Http/TypedRequestExtensions.Helpers.cs ================================================ using System; using System.Collections.Generic; using System.Reflection; using System.Text; namespace KubeClient.Http { using ValueProviders; /// /// Helper methods for / extensions. /// public static partial class TypedRequestExtensions { /// /// Configure the request URI (and template status) in the request properties. /// /// /// The request properties to modify. /// /// /// The request URI. /// static void SetUri(this IDictionary requestProperties, Uri requestUri) { if (requestProperties == null) throw new ArgumentNullException(nameof(requestProperties)); if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); requestProperties[nameof(IHttpRequest.Uri)] = requestUri; requestProperties[nameof(IHttpRequest.IsUriTemplate)] = UriTemplate.IsTemplate(requestUri); } /// /// Ensure that the specified string is surrounted by quotes. /// /// /// The string to examine. /// /// /// The string, with quotes prepended / appended as required. /// /// /// Some HTTP headers (such as If-Match) require their values to be quoted. /// static string EnsureQuoted(string str) { if (str == null) throw new ArgumentNullException(nameof(str)); if (str.Length == 0) return "\"\""; StringBuilder quotedStringBuilder = new StringBuilder(str); if (quotedStringBuilder[0] != '\"') quotedStringBuilder.Insert(0, '\"'); if (quotedStringBuilder[quotedStringBuilder.Length - 1] != '\"') quotedStringBuilder.Append('\"'); return quotedStringBuilder.ToString(); } /// /// Convert the specified object's properties to deferred parameters. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The type of object whose properties will form the parameters. /// /// /// The object whose properties will form the parameters. /// /// /// A sequence of key / value pairs representing the parameters. /// static IEnumerable>> CreateDeferredParameters(TParameters parameters) { if (parameters == null) throw new ArgumentNullException(nameof(parameters)); // TODO: Refactor PropertyInfo retrieval logic (move it out to an extension method). // Yes yes yes, reflection might be "slow", but it's still blazingly fast compared to making a request over the network. foreach (PropertyInfo property in typeof(TParameters).GetTypeInfo().DeclaredProperties) { // Ignore write-only properties. if (!property.CanRead) continue; // Public instance properties only. if (!property.GetMethod.IsPublic || property.GetMethod.IsStatic) continue; yield return new KeyValuePair>( property.Name, ValueProvider.FromSelector( context => property.GetValue(parameters) ) .Convert().ValueToString() ); } } } } ================================================ FILE: src/KubeClient.Http/TypedRequestExtensions.QueryParameters.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; namespace KubeClient.Http { using ValueProviders; /// /// / extension methods for query parameters. /// public static partial class TypedRequestExtensions { /// /// Create a copy of the request builder with the specified request URI query parameter. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The parameter data-type. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// The parameter value. /// /// /// The new . /// public static HttpRequest WithQueryParameter(this HttpRequest request, string name, TValue value) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); return request.WithQueryParameterFromProvider(name, ValueProvider.FromConstantValue(value?.ToString()) ); } /// /// Create a copy of the request builder with the specified request URI query parameter. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// Delegate that returns the parameter value (cannot be null). /// /// /// The new . /// public static HttpRequest WithQueryParameter(this HttpRequest request, string name, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithQueryParameterFromProvider( name, ValueProvider.FromFunction(getValue) ); } /// /// Create a copy of the request builder with the specified request URI query parameter. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// Delegate that, given the current context, returns the parameter value (cannot be null). /// /// /// The new . /// public static HttpRequest WithQueryParameterFromProvider(this HttpRequest request, string name, IValueProvider valueProvider) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = request.QueryParameters.SetItem( key: name, value: valueProvider.Convert().ValueToString() ); }); } /// /// Create a copy of the request, but with query parameters from the specified object's properties. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The type of object whose properties will form the parameters. /// /// /// The HTTP request. /// /// /// The object whose properties will form the parameters. /// /// /// The new . /// public static HttpRequest WithQueryParametersFrom(HttpRequest request, TParameters parameters) { if (parameters == null) throw new ArgumentNullException(nameof(parameters)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); return request.WithQueryParametersFromProviders( CreateDeferredParameters(parameters) ); } /// /// Create a copy of the request builder with the specified request URI query parameters. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// A sequence of 0 or more key / value pairs representing the query parameters (values cannot be null). /// /// /// The new . /// public static HttpRequest WithQueryParametersFromProviders(this HttpRequest request, IEnumerable>> queryParameters) { if (request == null) throw new ArgumentNullException(nameof(request)); if (queryParameters == null) throw new ArgumentNullException(nameof(queryParameters)); bool modified = false; ImmutableDictionary>.Builder queryParametersBuilder = request.QueryParameters.ToBuilder(); foreach (KeyValuePair> queryParameter in queryParameters) { if (queryParameter.Value == null) { throw new ArgumentException( String.Format( "Query parameter '{0}' has a null getter; this is not supported.", queryParameter.Key ), nameof(queryParameters) ); } queryParametersBuilder[queryParameter.Key] = queryParameter.Value; modified = true; } if (!modified) return request; return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = queryParametersBuilder.ToImmutable(); }); } /// /// Create a copy of the request builder without the specified request URI query parameter. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// The new . /// public static HttpRequest WithoutQueryParameter(this HttpRequest request, string name) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (!request.QueryParameters.ContainsKey(name)) return request; return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = request.QueryParameters.Remove(name); }); } /// /// Create a copy of the request builder without the specified request URI query parameters. /// /// /// The HTTP request. /// /// /// The parameter names. /// /// /// The new . /// public static HttpRequest WithoutQueryParameters(this HttpRequest request, IEnumerable names) { if (names == null) throw new ArgumentNullException(nameof(names)); return request.Clone(properties => { properties[nameof(HttpRequest.QueryParameters)] = request.QueryParameters.RemoveRange(names); }); } } } ================================================ FILE: src/KubeClient.Http/TypedRequestExtensions.RequestActions.cs ================================================ using System; using System.Linq; namespace KubeClient.Http { /// /// / extension methods for request-configuration actions. /// public static partial class TypedRequestExtensions { /// /// Create a copy of the request with the specified request-configuration action. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, RequestAction requestAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestAction == null) throw new ArgumentNullException(nameof(requestAction)); return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.Add( (message, context) => requestAction(message) ); }); } /// /// Create a copy of the request with the specified request-configuration action. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, RequestAction requestAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestAction == null) throw new ArgumentNullException(nameof(requestAction)); return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.Add(requestAction); }); } /// /// Create a copy of the request with the specified request-configuration actions. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, params RequestAction[] requestActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestActions == null) throw new ArgumentNullException(nameof(requestActions)); if (requestActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.AddRange( requestActions.Select(requestAction => { RequestAction requestActionWithContext = (message, context) => requestAction(message); return requestActionWithContext; }) ); }); } /// /// Create a copy of the request with the specified request-configuration actions. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures outgoing request messages. /// /// /// The new . /// public static HttpRequest WithRequestAction(this HttpRequest request, params RequestAction[] requestActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestActions == null) throw new ArgumentNullException(nameof(requestActions)); if (requestActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.RequestActions)] = request.RequestActions.AddRange(requestActions); }); } } } ================================================ FILE: src/KubeClient.Http/TypedRequestExtensions.RequestUri.cs ================================================ using System; namespace KubeClient.Http { using Utilities; /// /// / extension methods for request URIs. /// public static partial class TypedRequestExtensions { /// /// Create a copy of the request with the specified base URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The request. /// /// /// The request base URI (must be absolute). /// /// /// The new . /// /// /// The request already has an absolute URI. /// public static HttpRequest WithBaseUri(this HttpRequest request, Uri baseUri) { if (request == null) throw new ArgumentNullException(nameof(request)); if (baseUri == null) throw new ArgumentNullException(nameof(baseUri)); if (!baseUri.IsAbsoluteUri) throw new ArgumentException("The supplied base URI is not an absolute URI.", nameof(baseUri)); if (request.Uri.IsAbsoluteUri) throw new InvalidOperationException("The request already has an absolute URI."); return request.Clone(properties => { properties.SetUri( baseUri.AppendRelativeUri(request.Uri) ); }); } /// /// Create a copy of the request with the specified request URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The request. /// /// /// The new request URI. /// /// Must be an absolute URI (otherwise, use ). /// /// /// The new . /// public static HttpRequest WithUri(this HttpRequest request, Uri requestUri) { if (request == null) throw new ArgumentNullException(nameof(request)); if (requestUri == null) throw new ArgumentNullException(nameof(requestUri)); return request.Clone(properties => { properties.SetUri(requestUri); }); } /// /// Create a copy of the request with the specified request URI appended to its existing URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The request. /// /// /// The relative request URI. /// /// /// The new . /// public static HttpRequest WithRelativeUri(this HttpRequest request, string relativeUri) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(relativeUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'relativeUri'.", nameof(relativeUri)); return request.WithRelativeUri( new Uri(relativeUri, UriKind.Relative) ); } /// /// Create a copy of the request with the specified request URI appended to its existing URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The request. /// /// /// The relative request URI. /// /// /// The new . /// public static HttpRequest WithRelativeUri(this HttpRequest request, Uri relativeUri) { if (relativeUri == null) throw new ArgumentNullException(nameof(relativeUri)); if (relativeUri.IsAbsoluteUri) throw new ArgumentException("The specified URI is not a relative URI.", nameof(relativeUri)); return request.Clone(properties => { properties.SetUri( request.Uri.AppendRelativeUri(relativeUri) ); }); } } } ================================================ FILE: src/KubeClient.Http/TypedRequestExtensions.ResponseActions.cs ================================================ using System; using System.Linq; namespace KubeClient.Http { /// /// / extension methods for response-processing actions. /// public static partial class TypedRequestExtensions { /// /// Create a copy of the request with the specified response-processing action. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, ResponseAction responseAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseAction == null) throw new ArgumentNullException(nameof(responseAction)); return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.Add( (message, context) => responseAction(message) ); }); } /// /// Create a copy of the request with the specified response-processing action. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, ResponseAction responseAction) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseAction == null) throw new ArgumentNullException(nameof(responseAction)); return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.Add(responseAction); }); } /// /// Create a copy of the request with the specified response-processing actions. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, params ResponseAction[] responseActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseActions == null) throw new ArgumentNullException(nameof(responseActions)); if (responseActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.AddRange( responseActions.Select(responseAction => { ResponseAction responseActionWithContext = (message, context) => responseAction(message); return responseActionWithContext; }) ); }); } /// /// Create a copy of the request with the specified response-processing actions. /// /// /// The type of object used by the request when resolving deferred template parameters. /// /// /// The HTTP request. /// /// /// A delegate that configures incoming response messages. /// /// /// The new . /// public static HttpRequest WithResponseAction(this HttpRequest request, params ResponseAction[] responseActions) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseActions == null) throw new ArgumentNullException(nameof(responseActions)); if (responseActions.Length == 0) return request; return request.Clone(properties => { properties[nameof(HttpRequest.ResponseActions)] = request.ResponseActions.AddRange(responseActions); }); } } } ================================================ FILE: src/KubeClient.Http/TypedRequestExtensions.TemplateParameters.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; namespace KubeClient.Http { using ValueProviders; /// /// / extension methods for template parameters. /// public static partial class TypedRequestExtensions { /// /// Create a copy of the request builder with the specified request URI template parameter. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The parameter data-type. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// The parameter value. /// /// /// The new . /// public static HttpRequest WithTemplateParameter(this HttpRequest request, string name, TValue value) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); return request.WithTemplateParameterFromProvider(name, ValueProvider.FromConstantValue(value?.ToString()) ); } /// /// Create a copy of the request builder with the specified request URI template parameter. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The parameter data-type. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// Delegate that returns the parameter value. /// /// /// The new . /// public static HttpRequest WithTemplateParameter(this HttpRequest request, string name, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithTemplateParameterFromProvider(name, ValueProvider.FromFunction(getValue).Convert().ValueToString() ); } /// /// Create a copy of the request builder with the specified request URI template parameter. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The parameter data-type. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// Delegate that returns the parameter value. /// /// /// The new . /// public static HttpRequest WithTemplateParameter(this HttpRequest request, string name, Func getValue) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return request.WithTemplateParameterFromProvider(name, ValueProvider.FromSelector(getValue).Convert().ValueToString() ); } /// /// Create a copy of the request builder with the specified request URI template parameter. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The parameter data-type. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// A value provider that, given the current context, returns the parameter value. /// /// /// The new . /// public static HttpRequest WithTemplateParameterFromProvider(this HttpRequest request, string name, IValueProvider valueProvider) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = request.TemplateParameters.SetItem( key: name, value: valueProvider.Convert().ValueToString() ); }); } /// /// Create a copy of the request, but with template parameters from the specified object's properties. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The type of object whose properties will form the parameters. /// /// /// The HTTP request. /// /// /// The object whose properties will form the parameters. /// /// /// The new . /// public static HttpRequest WithTemplateParameters(HttpRequest request, TParameters parameters) { if (ReferenceEquals(parameters, null)) throw new ArgumentNullException(nameof(parameters)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); return request.WithTemplateParametersFromProviders( CreateDeferredParameters(parameters) ); } /// /// Create a copy of the request builder with the specified request URI template parameters. /// /// /// The HTTP request. /// /// /// A sequence of 0 or more key / value pairs representing the template parameters (values cannot be null). /// /// /// The new . /// public static HttpRequest WithTemplateParametersFromProviders(this HttpRequest request, IEnumerable>> templateParameters) { if (request == null) throw new ArgumentNullException(nameof(request)); if (templateParameters == null) throw new ArgumentNullException(nameof(templateParameters)); bool modified = false; ImmutableDictionary>.Builder templateParametersBuilder = request.TemplateParameters.ToBuilder(); foreach (KeyValuePair> templateParameter in templateParameters) { if (templateParameter.Value == null) { throw new ArgumentException( String.Format( "Template parameter '{0}' has a null getter; this is not supported.", templateParameter.Key ), nameof(templateParameters) ); } templateParametersBuilder[templateParameter.Key] = templateParameter.Value; modified = true; } if (!modified) return request; return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = templateParametersBuilder.ToImmutable(); }); } /// /// Create a copy of the request builder without the specified request URI template parameter. /// /// /// The HTTP request. /// /// /// The parameter name. /// /// /// The new . /// public static HttpRequest WithoutTemplateParameter(this HttpRequest request, string name) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'name'.", nameof(name)); if (!request.TemplateParameters.ContainsKey(name)) return request; return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = request.TemplateParameters.Remove(name); }); } /// /// Create a copy of the request builder without the specified request URI template parameters. /// /// /// The HTTP request. /// /// /// The parameter names. /// /// /// The new . /// public static HttpRequest WithoutTemplateParameters(this HttpRequest request, IEnumerable names) { if (request == null) throw new ArgumentNullException(nameof(request)); if (names == null) throw new ArgumentNullException(nameof(names)); return request.Clone(properties => { properties[nameof(HttpRequest.TemplateParameters)] = request.TemplateParameters.RemoveRange(names); }); } } } ================================================ FILE: src/KubeClient.Http/UriTemplate.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace KubeClient.Http { using Templates; /// /// Populates parameterised URI templates. /// public sealed class UriTemplate { /// /// The URI template. /// readonly string _template; /// /// The template's URI segments. /// readonly IReadOnlyList _uriSegments; /// /// The template's URI segments. /// readonly IReadOnlyList _querySegments; /// /// Create a new URI template. /// /// /// The template. /// public UriTemplate(string template) { if (String.IsNullOrWhiteSpace(template)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'template'.", nameof(template)); _template = template; IReadOnlyList templateSegments = TemplateSegment.Parse(_template); _uriSegments = templateSegments.OfType().ToArray(); if (_uriSegments.Count == 0) throw new UriTemplateException("Invalid URI template (contains no path segments)."); _querySegments = templateSegments.OfType().ToArray(); } /// /// Build a URI from the template. /// /// /// A dictionary containing the template parameters. /// /// /// The generated URI. /// public Uri Populate(IDictionary templateParameters) { return Populate(null, templateParameters); } /// /// Build a URI from the template. /// /// /// The base URI, or null to generate a relative URI. /// /// /// A dictionary containing the template parameters. /// /// /// The generated URI. /// public Uri Populate(Uri baseUri, IDictionary templateParameters) { if (baseUri != null && !baseUri.IsAbsoluteUri) throw new UriTemplateException($"Base URI '{baseUri}' is not an absolute URI."); if (templateParameters == null) throw new ArgumentNullException(nameof(templateParameters)); TemplateEvaluationContext evaluationContext = new TemplateEvaluationContext(templateParameters); StringBuilder uriBuilder = new StringBuilder(); if (baseUri != null) { uriBuilder.Append( baseUri.GetComponents(UriComponents.Scheme | UriComponents.StrongAuthority, UriFormat.UriEscaped) ); } if (_uriSegments.Count > 0) { foreach (UriSegment uriSegment in _uriSegments) { string segmentValue = uriSegment.GetValue(evaluationContext); if (segmentValue == null) continue; // TODO: ensure we have tests for the existing baseline before we even * consider * changing the escape mechanism #pragma warning disable SYSLIB0013 // Type or member is obsolete uriBuilder.Append( Uri.EscapeUriString(segmentValue) ); #pragma warning restore SYSLIB0013 // Type or member is obsolete if (uriSegment.IsDirectory) uriBuilder.Append('/'); } } else uriBuilder.Append('/'); bool isFirstParameterWithValue = true; foreach (QuerySegment segment in _querySegments) { string queryParameterValue = segment.GetValue(evaluationContext); if (queryParameterValue == null) continue; // Different prefix for first parameter that has a value. if (isFirstParameterWithValue) { uriBuilder.Append('?'); isFirstParameterWithValue = false; } else uriBuilder.Append('&'); uriBuilder.AppendFormat( "{0}={1}", Uri.EscapeDataString(segment.QueryParameterName), Uri.EscapeDataString(queryParameterValue) ); } return new Uri(uriBuilder.ToString(), UriKind.RelativeOrAbsolute); } /// /// Does the specified URI represent a template? /// /// /// The URI. /// /// /// true, if any of the URI's components are parameterised (i.e. have non-constant values); otherwise, false. /// public static bool IsTemplate(Uri uri) { if (uri == null) throw new ArgumentNullException(nameof(uri)); return IsTemplate(uri.ToString()); } /// /// Does the specified URI represent a template? /// /// /// The URI. /// /// /// true, if any of the URI's components are parameterised (i.e. have non-constant values); otherwise, false. /// public static bool IsTemplate(string uri) { if (uri == null) throw new ArgumentNullException(nameof(uri)); IReadOnlyList templateSegments = TemplateSegment.Parse(uri); return templateSegments.Any(segment => segment.IsParameterized); } } } ================================================ FILE: src/KubeClient.Http/UriTemplateException.cs ================================================ using System; namespace KubeClient.Http { /// /// Exception raised when a is invalid or is missing required information. /// public class UriTemplateException : KubeClientException { /// /// Create a new . /// /// /// The exception message. /// public UriTemplateException(string message) : base(message) { } /// /// Create a new . /// /// /// The exception that caused this exception to be raised. /// /// /// The exception message. /// public UriTemplateException(Exception innerException, string message) : base(message, innerException) { } } } ================================================ FILE: src/KubeClient.Http/Utilities/DisposalHelpers.cs ================================================ using System; using System.Collections.Generic; using System.Linq; namespace KubeClient.Http.Utilities { /// /// Helper methods for . /// static class DisposalHelpers { /// /// Create an aggregate that disposes of the specified s when it is disposed. /// /// /// The s to aggregate. /// /// /// An aggregate representing the supplied disposables. /// /// /// One or more aggregated disposables throw exceptions during disposal. /// public static AggregateDisposable ToAggregateDisposable(this IEnumerable disposables) { if (disposables == null) return new AggregateDisposable(); return new AggregateDisposable(disposables); } #region AggregateDisposable /// /// Implements disposal of multiple s. /// public struct AggregateDisposable : IDisposable { /// /// The disposables to dispose of. /// readonly IReadOnlyList _disposables; /// /// Create a new aggregate disposable. /// /// /// A sequence of s to aggregate. /// public AggregateDisposable(IEnumerable disposables) { if (disposables == null) throw new ArgumentNullException(nameof(disposables)); _disposables = disposables.ToArray(); } /// /// Dispose the disposables. /// public void Dispose() { List disposalExceptions = new List(); foreach (IDisposable disposable in _disposables) { try { disposable.Dispose(); } catch (Exception eDisposal) { disposalExceptions.Add(eDisposal); } } if (disposalExceptions.Count > 0) throw new AggregateException("One or more exceptions were encountered during object disposal.", disposalExceptions); } } #endregion // AggregateDisposable } } ================================================ FILE: src/KubeClient.Http/Utilities/HttpRequestBase.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Runtime.CompilerServices; namespace KubeClient.Http { using Utilities; using RequestProperties = ImmutableDictionary; /// /// The base class for HTTP request templates. /// public abstract class HttpRequestBase : IHttpRequestProperties { #region Instance data /// /// The request properties. /// readonly RequestProperties _properties; #endregion // Instance data #region Construction /// /// Create a new HTTP request. /// /// /// The request properties. /// protected HttpRequestBase(ImmutableDictionary properties) { if (properties == null) throw new ArgumentNullException(nameof(properties)); _properties = properties; EnsurePropertyType(nameof(Uri)); EnsurePropertyType(nameof(IsUriTemplate)); } #endregion // Construction #region IHttpRequest /// /// The request URI. /// public Uri Uri => GetOptionalProperty(); /// /// Is the request URI a template? /// public bool IsUriTemplate => GetOptionalProperty(); /// /// All properties for the request. /// public ImmutableDictionary Properties => _properties; #endregion // IHttpRequest #region Request properties /// /// Determine whether the specified property is defined for the request. /// /// /// The property name. /// /// /// true, if the request is defined; otherwise, false. /// protected bool HaveProperty([CallerMemberName] string propertyName = null) { if (String.IsNullOrWhiteSpace(propertyName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'propertyName'.", nameof(propertyName)); return _properties.ContainsKey(propertyName); } /// /// Get the specified request property. /// /// /// The type of property to retrieve. /// /// /// The name of the property to retrieve. /// /// /// The property value. /// /// /// is null, empty, or entirely composed of whitespace. /// /// /// The specified property is not defined. /// protected TProperty GetProperty([CallerMemberName] string propertyName = null) { if (String.IsNullOrWhiteSpace(propertyName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'propertyName'.", nameof(propertyName)); object propertyValue; if (!_properties.TryGetValue(propertyName, out propertyValue)) throw new KeyNotFoundException($"Property '{propertyName}' is not defined."); return (TProperty)propertyValue; } /// /// Get the specified request property. /// /// /// The type of property to retrieve. /// /// /// The name of the property to retrieve. /// /// /// The default value to return if the property is not defined. /// /// /// The property value, or the default value if the property is not defined. /// /// /// is null, empty, or entirely composed of whitespace. /// /// /// The specified property is not defined. /// protected TProperty GetOptionalProperty([CallerMemberName] string propertyName = null, TProperty defaultValue = default(TProperty)) { if (String.IsNullOrWhiteSpace(propertyName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'propertyName'.", nameof(propertyName)); object propertyValue; if (_properties.TryGetValue(propertyName, out propertyValue)) return (TProperty)propertyValue; return defaultValue; } /// /// Ensure that the specified property (if defined) is of the correct type. /// /// /// The expected property type. /// /// /// The name of the property to validate. /// /// /// is null, empty, or entirely composed of whitespace. /// protected void EnsurePropertyType(string propertyName) { if (String.IsNullOrWhiteSpace(propertyName)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'propertyName'.", nameof(propertyName)); object propertyValue; if (!_properties.TryGetValue(propertyName, out propertyValue)) return; if (propertyValue is TProperty) return; // It's not of the correct type, but is that because it's null? Type propertyType = typeof(TProperty); if (propertyValue != null) { throw new InvalidOperationException( $"Value for property '{propertyName}' has unexpected type '{propertyType.FullName}' (should be '{propertyValue.GetType().FullName}')." ); } // It's null; is that legal? if (typeof(TProperty).IsNullable()) return; throw new InvalidOperationException( $"Property '{propertyName}' is null but its type ('{propertyType.FullName}') is not nullable." ); } /// /// Clone the request properties, but with the specified changes. /// /// /// A delegate that modifies the request properties. /// /// /// The cloned request properties. /// protected ImmutableDictionary CloneProperties(Action modifications) { if (modifications == null) throw new ArgumentNullException(nameof(modifications)); RequestProperties.Builder requestProperties = _properties.ToBuilder(); modifications(requestProperties); return requestProperties.ToImmutable(); } #endregion // Request properties #region Cloning /// /// Clone the request. /// /// /// A delegate that performs modifications to the request properties. /// /// /// The cloned request. /// public virtual HttpRequestBase Clone(Action> modifications) { if (modifications == null) throw new ArgumentNullException(nameof(modifications)); return CreateInstance( CloneProperties(modifications) ); } /// /// Create a new instance of the HTTP request using the specified properties. /// /// /// The request properties. /// /// /// The new HTTP request instance. /// protected abstract HttpRequestBase CreateInstance(ImmutableDictionary requestProperties); #endregion // Cloning #region ToString /// /// Convert the HTTP request to a textual representation. /// /// /// The textual representation. /// public override string ToString() { return $"HTTP Request ({Uri?.ToString() ?? "empty"})"; } #endregion // ToString } } ================================================ FILE: src/KubeClient.Http/Utilities/ReflectionHelper.cs ================================================ using System; using System.Collections.Concurrent; using System.Reflection; namespace KubeClient.Http.Utilities { /// /// Helper methods for working with Reflection. /// public static class ReflectionHelper { /// /// Types that are known to be nullable. /// static readonly ConcurrentDictionary _nullableTypes = new ConcurrentDictionary(); /// /// Determine whether a reference to an instance of the type can be null. /// /// /// The type. /// /// /// true, if the represents a reference type or a nullable value type. /// public static bool IsNullable(this Type type) { if (type == null) throw new ArgumentNullException(nameof(type)); return _nullableTypes.GetOrAdd(type, targetType => { if (type.GetTypeInfo().IsClass) return true; // For non-nullable types, Nullable.GetUnderlyingType just returns the type supplied to it. return Nullable.GetUnderlyingType(type) != type; }); } } } ================================================ FILE: src/KubeClient.Http/Utilities/UriHelper.cs ================================================ using System; using System.Collections.Specialized; using System.Diagnostics; using System.Text; namespace KubeClient.Http.Utilities { /// /// Helper methods for working with s. /// public static class UriHelper { /// /// Parse the URI's query parameters. /// /// /// The URI. /// /// /// A containing key / value pairs representing the query parameters. /// public static NameValueCollection ParseQueryParameters(this Uri uri) { if (uri == null) throw new ArgumentNullException(nameof(uri)); NameValueCollection queryParameters = new NameValueCollection(); if (String.IsNullOrWhiteSpace(uri.Query)) return queryParameters; Debug.Assert(uri.Query[0] == '?', "Query string does not start with '?'."); string[] keyValuePairs = uri.Query.Substring(1).Split( separator: new char[] { '&' }, options: StringSplitOptions.RemoveEmptyEntries ); foreach (string keyValuePair in keyValuePairs) { string[] keyAndValue = keyValuePair.Split( separator: new char[] { '=' }, count: 2 ); string key = keyAndValue[0]; string value = keyAndValue.Length == 2 ? keyAndValue[1] : null; queryParameters[key] = value; } return queryParameters; } /// /// Create a copy of URI with its query component populated with the supplied parameters. /// /// /// The used to construct the URI. /// /// /// A representing the query parameters. /// /// /// A new URI with the specified query. /// public static Uri WithQueryParameters(this Uri uri, NameValueCollection parameters) { if (uri == null) throw new ArgumentNullException(nameof(uri)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); return new UriBuilder(uri) .WithQueryParameters(parameters) .Uri; } /// /// Populate the query component of the URI. /// /// /// The used to construct the URI /// /// /// A representing the query parameters. /// /// /// The URI builder (enables inline use). /// public static UriBuilder WithQueryParameters(this UriBuilder uriBuilder, NameValueCollection parameters) { if (uriBuilder == null) throw new ArgumentNullException(nameof(uriBuilder)); if (parameters == null) throw new ArgumentNullException(nameof(parameters)); if (parameters.Count == 0) return uriBuilder; // Yes, you could do this using String.Join, but it seems a bit wasteful to allocate all those "key=value" strings only to throw them away again. Action addQueryParameter = (builder, parameterIndex) => { string parameterName = parameters.GetKey(parameterIndex); string parameterValue = parameters.Get(parameterIndex); builder.Append(parameterName); // Support for /foo/bar?x=1&y&z=2 if (parameterValue != null) { builder.Append('='); // TODO: ensure we have tests for the existing baseline before we even * consider * changing the escape mechanism #pragma warning disable SYSLIB0013 // Type or member is obsolete builder.Append( Uri.EscapeUriString(parameterValue) ); #pragma warning restore SYSLIB0013 // Type or member is obsolete } }; StringBuilder queryBuilder = new StringBuilder(); // First parameter has no prefix. addQueryParameter(queryBuilder, 0); // Subsequent parameters are separated with an '&' for (int parameterIndex = 1; parameterIndex < parameters.Count; parameterIndex++) { queryBuilder.Append('&'); addQueryParameter(queryBuilder, parameterIndex); } uriBuilder.Query = queryBuilder.ToString(); return uriBuilder; } /// /// Append a relative URI to the base URI. /// /// /// The base URI. /// /// A trailing "/" will be appended, if necessary. /// /// /// The relative URI to append (leading slash will be trimmed, if required). /// /// /// The concatenated URI. /// /// /// This function is required because, sometimes, appending of a relative path to a URI can behave counter-intuitively. /// If the base URI does not have a trailing "/", then its last path segment is *replaced* by the relative UI. This is hardly ever what you actually want. /// internal static Uri AppendRelativeUri(this Uri baseUri, Uri relativeUri) { if (baseUri == null) throw new ArgumentNullException(nameof(baseUri)); if (relativeUri == null) throw new ArgumentNullException(nameof(relativeUri)); if (relativeUri.IsAbsoluteUri) return relativeUri; if (baseUri.IsAbsoluteUri) { // Working with relative URIs is painful (e.g. you can't use .PathAndQuery). string relativeUriString = relativeUri.ToString(); // Handle the case where the relative URI only contains query parameters (no path). if (relativeUriString[0] == '?') { StringBuilder absoluteUriBuilder = new StringBuilder(baseUri.AbsoluteUri); if (String.IsNullOrWhiteSpace(baseUri.Query)) absoluteUriBuilder.Append('?'); else absoluteUriBuilder.Append('&'); absoluteUriBuilder.Append(relativeUriString, startIndex: 1, count: relativeUriString.Length - 1 ); return new Uri( absoluteUriBuilder.ToString() ); } // Retain URI-concatenation semantics, except that we behave the same whether trailing slash is present or absent. UriBuilder uriBuilder = new UriBuilder(baseUri); string[] relativePathAndQuery = relativeUriString.Split( new[] { '?' }, count: 2, options: StringSplitOptions.RemoveEmptyEntries ); uriBuilder.Path = AppendPaths(uriBuilder.Path, relativePathAndQuery[0]); // Merge query parameters, if required. if (relativePathAndQuery.Length == 2) { uriBuilder.Query = MergeQueryStrings( baseQueryString: uriBuilder.Query, additionalQueryString: relativePathAndQuery[1] ); } return uriBuilder.Uri; } // Irritatingly, you can't use UriBuilder with a relative path. return new Uri( AppendPaths(baseUri.ToString(), relativeUri.ToString()), UriKind.Relative ); } /// /// Contatenate 2 relative URI paths. /// /// /// The base URI path. /// /// /// The relative URI path to append to the base URI path. /// /// /// The appended paths, separated by a single slash. /// static string AppendPaths(string basePath, string relativePath) { if (basePath == null) throw new ArgumentNullException(nameof(basePath)); if (relativePath == null) throw new ArgumentNullException(nameof(relativePath)); StringBuilder pathBuilder = new StringBuilder(basePath); if (pathBuilder.Length == 0 || pathBuilder[pathBuilder.Length - 1] != '/') pathBuilder.Append("/"); int relativePathStartIndex = (relativePath.Length > 0 && relativePath[0] == '/') ? 1 : 0; pathBuilder.Append( relativePath, startIndex: (relativePath.Length > 0 && relativePath[0] == '/') ? 1 : 0, count: relativePath.Length - relativePathStartIndex ); return pathBuilder.ToString(); } /// /// Merge 2 query strings. /// /// /// The base query string. /// /// If empty, the additional query string is used. /// /// /// The additional query string. /// /// If empty, the base query string is used. /// /// /// /// Does not remove duplicate parameters. /// static string MergeQueryStrings(string baseQueryString, string additionalQueryString) { if (String.IsNullOrWhiteSpace(additionalQueryString)) return baseQueryString; if (String.IsNullOrWhiteSpace(baseQueryString)) return additionalQueryString; StringBuilder combinedQueryParameters = new StringBuilder(); if (baseQueryString[0] != '?') combinedQueryParameters.Append('?'); combinedQueryParameters.Append(baseQueryString); if (additionalQueryString[0] != '?') combinedQueryParameters.Append(additionalQueryString); else combinedQueryParameters.Append(additionalQueryString, 1, additionalQueryString.Length - 1); return combinedQueryParameters.ToString(); } } } ================================================ FILE: src/KubeClient.Http/ValueProviders/IValueProvider.cs ================================================ namespace KubeClient.Http.ValueProviders { /// /// Represents the provider for a value from an instance of . /// /// /// The source type from which the value is extracted. /// /// /// The type of value returned by the provider. /// public interface IValueProvider { /// /// Extract the value from the specified context. /// /// /// The instance from which the value is to be extracted. /// /// /// The value. /// TValue Get(TContext source); } } ================================================ FILE: src/KubeClient.Http/ValueProviders/ValueProvider.cs ================================================ using System; namespace KubeClient.Http.ValueProviders { /// /// Factory methods for creating value providers. /// /// /// The type used as a context for each request. /// public static class ValueProvider { /// /// Create a value provider from the specified selector function. /// /// /// The type of value returned by the selector. /// /// /// A selector function that, when given an instance of , and returns a well-known value of type derived from the context. /// /// /// The value provider. /// public static IValueProvider FromSelector(Func selector) { if (selector == null) throw new ArgumentNullException(nameof(selector)); return new SelectorValueProvider(selector); } /// /// Create a value provider from the specified function. /// /// /// The type of value returned by the function. /// /// /// A function that returns a well-known value of type . /// /// /// The value provider. /// public static IValueProvider FromFunction(Func getValue) { if (getValue == null) throw new ArgumentNullException(nameof(getValue)); return new FunctionValueProvider(getValue); } /// /// Create a value provider from the specified constant value. /// /// /// The type of value returned by the provider. /// /// /// A constant value that is returned by the provider. /// /// /// The value provider. /// public static IValueProvider FromConstantValue(TValue value) { return new ConstantValueProvider(value); } /// /// Value provider that invokes a selector function on the context to extract its value. /// /// /// The type of value returned by the provider. /// class SelectorValueProvider : IValueProvider { /// /// The selector function that extracts a value from the context. /// readonly Func _selector; /// /// Create a new selector-based value provider. /// /// /// The selector function that extracts a value from the context. /// public SelectorValueProvider(Func selector) { _selector = selector; } /// /// Extract the value from the specified context. /// /// /// The TContext instance from which the value is to be extracted. /// /// /// The value. /// public TValue Get(TContext source) { if (source == null) throw new InvalidOperationException("The current request template has one more more deferred parameters that refer to its context; the context parameter must therefore be supplied."); return _selector(source); } } /// /// Value provider that invokes a function to extract its value. /// /// /// The type of value returned by the provider. /// class FunctionValueProvider : IValueProvider { /// /// The function that is invoked to provide a value. /// readonly Func _getValue; /// /// Create a new function-based value provider. /// /// /// The function that is invoked to provide a value. /// public FunctionValueProvider(Func getValue) { _getValue = getValue; } /// /// Extract the value from the specified context. /// /// /// The TContext instance from which the value is to be extracted. /// /// /// The value. /// public TValue Get(TContext source) { if (source == null) return default(TValue); // AF: Is this correct? return _getValue(); } } /// /// Value provider that returns a constant value. /// /// /// The type of value returned by the provider. /// class ConstantValueProvider : IValueProvider { /// /// The constant value returned by the provider. /// readonly TValue _value; /// /// Create a new constant value provider. /// /// /// The constant value returned by the provider. /// public ConstantValueProvider(TValue value) { _value = value; } /// /// Extract the value from the specified context. /// /// /// The TContext instance from which the value is to be extracted. /// /// /// The value. /// public TValue Get(TContext source) { if (source == null) return default(TValue); // AF: Is this correct? return _value; } } } } ================================================ FILE: src/KubeClient.Http/ValueProviders/ValueProviderConversion.cs ================================================ using System; namespace KubeClient.Http.ValueProviders { /// /// Conversion operations for a value provider. /// /// /// The type used as a context for each request. /// /// /// The type of value returned by the value provider. /// public struct ValueProviderConversion { /// /// Create a new value-provider conversion. /// /// /// The value provider being converted. /// public ValueProviderConversion(IValueProvider valueProvider) : this() { if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); ValueProvider = valueProvider; } /// /// The value provider being converted. /// public IValueProvider ValueProvider { get; } /// /// Wrap the specified value provider in a value provider that utilises a more-derived context type. /// /// /// The more-derived type used by the new provider as a context for each request. /// /// /// The outer (converting) value provider. /// public IValueProvider ContextTo() where TDerivedContext : TContext { // Can't close over members of structs. IValueProvider valueProvider = ValueProvider; return ValueProvider.FromSelector( context => valueProvider.Get(context) ); } /// /// Wrap the value provider in a value provider that converts its value to a string. /// /// /// The outer (converting) value provider. /// /// /// If the underlying value is null then the converted string value will be null, too. /// public IValueProvider ValueToString() { // Special-case conversion to save on allocations. if (typeof(TValue) == typeof(string)) return (IValueProvider)ValueProvider; // Can't close over members of structs. IValueProvider valueProvider = ValueProvider; return ValueProvider.FromSelector( context => { TValue value = valueProvider.Get(context); return value != null ? value.ToString() : null; } ); } } } ================================================ FILE: src/KubeClient.Http/ValueProviders/ValueProviderExtensions.cs ================================================ using System; namespace KubeClient.Http.ValueProviders { /// /// Extension methods for . /// public static class ValueProviderExtensions { /// /// Perform a conversion on the value provider. /// /// /// The source type from which the value is extracted. /// /// /// The type of value extracted by the provider. /// /// /// The value provider. /// /// /// A whose methods can be used to select the conversion to perform on the value converter. /// public static ValueProviderConversion Convert(this IValueProvider valueProvider) { if (valueProvider == null) throw new ArgumentNullException(nameof(valueProvider)); return new ValueProviderConversion(valueProvider); } } } ================================================ FILE: src/Swagger/generate_models.py ================================================ """ Generate model classes from Kubernetes swagger. """ import json import os.path import pprint BASE_DIRECTORY = os.path.abspath('../KubeClient/Models/generated') ROOT_NAMESPACE = 'KubeClient.Models' IGNORE_MODELS = { 'io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions', 'io.k8s.apimachinery.pkg.apis.meta.v1.Time', 'io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime', 'io.k8s.apimachinery.pkg.api.resource.Quantity', 'io.k8s.apimachinery.pkg.util.intstr.IntOrString', # Present in both regular and and 'extensions' groups: 'io.k8s.api.extensions.v1beta1.Deployment', 'io.k8s.api.extensions.v1beta1.DeploymentList', 'io.k8s.api.extensions.v1beta1.DeploymentRollback', 'io.k8s.api.extensions.v1beta1.NetworkPolicy', 'io.k8s.api.extensions.v1beta1.NetworkPolicyList', 'io.k8s.api.extensions.v1beta1.PodSecurityPolicy', 'io.k8s.api.extensions.v1beta1.PodSecurityPolicyList', 'io.k8s.api.extensions.v1beta1.ReplicaSet', 'io.k8s.api.extensions.v1beta1.ReplicaSetList', 'io.k8s.api.extensions.v1.Deployment', 'io.k8s.api.extensions.v1.DeploymentList', 'io.k8s.api.extensions.v1.DeploymentRollback', 'io.k8s.api.extensions.v1.NetworkPolicy', 'io.k8s.api.extensions.v1.NetworkPolicyList', 'io.k8s.api.extensions.v1.PodSecurityPolicy', 'io.k8s.api.extensions.v1.PodSecurityPolicyList', 'io.k8s.api.extensions.v1.ReplicaSet', 'io.k8s.api.extensions.v1.ReplicaSetList', 'io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision', 'io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale', 'io.k8s.kubernetes.pkg.apis.apps.v1.ControllerRevision', 'io.k8s.kubernetes.pkg.apis.apps.v1.ControllerRevisionList', 'io.k8s.kubernetes.pkg.apis.extensions.v1.DaemonSet', 'io.k8s.kubernetes.pkg.apis.extensions.v1.DaemonSetList', 'io.k8s.kubernetes.pkg.apis.extensions.v1.Deployment', 'io.k8s.kubernetes.pkg.apis.extensions.v1.DeploymentList', 'io.k8s.kubernetes.pkg.apis.extensions.v1.DeploymentRollback', 'io.k8s.kubernetes.pkg.apis.extensions.v1.NetworkPolicy', 'io.k8s.kubernetes.pkg.apis.extensions.v1.NetworkPolicyList', 'io.k8s.kubernetes.pkg.apis.extensions.v1.PodSecurityPolicy', 'io.k8s.kubernetes.pkg.apis.extensions.v1.PodSecurityPolicyList', 'io.k8s.kubernetes.pkg.apis.extensions.v1.ReplicaSet', 'io.k8s.kubernetes.pkg.apis.extensions.v1.ReplicaSetList', 'io.k8s.kubernetes.pkg.apis.extensions.v1.Scale', # Special case for EventV1 'io.k8s.api.events.v1.Event', 'io.k8s.api.events.v1.EventList', # Hand-coded: 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource', 'io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResourceList' } VALUE_TYPE_NAMES = [ 'bool', 'int', 'long', 'double', 'DateTime' ] KUBE_ACTIONS = { 'deletecollection': 'DeleteCollection', 'list': 'List', 'post': 'Create', 'delete': 'Delete', 'get': 'Get', 'patch': 'Patch', 'put': 'Update', 'watch': 'Watch', 'watchlist': 'WatchList', } LINE_ENDING = '\n' class KubeModel(object): """ Represents a Kubernetes API model. """ def __init__(self, name, summary, api_version, pretty_api_version, kube_group, required_property_keys): self.name = name self.api_version = api_version self.pretty_api_version = pretty_api_version self.kube_group = kube_group if self.kube_group: self.api_groupversion = '{0}/{1}'.format(self.kube_group, self.api_version) else: self.api_groupversion = self.api_version self.clr_name = self.name + self.pretty_api_version self.summary = summary or 'No summary provided' self.required_property_keys = required_property_keys self.properties = {} def update_properties(self, property_definitions, data_types): self.properties.clear() for property_name in sorted(property_definitions.keys(), key=get_defname_sort_key): safe_property_name = property_name if safe_property_name.startswith('$'): # Trim prefix safe_property_name = safe_property_name[1:] # Capitalise safe_property_name = safe_property_name[0].capitalize() + safe_property_name[1:] safe_property_name = safe_property_name.replace('$', 'dollar') self.properties[safe_property_name] = KubeModelProperty.from_definition( safe_property_name, property_name, property_definitions[property_name], data_types, is_optional=( property_name not in self.required_property_keys ) ) def is_kube_object(self): kind_property = self.properties.get('kind') if not kind_property or kind_property.data_type.name != 'string': return False api_version_property = self.properties.get('apiVersion') if not api_version_property or api_version_property.data_type.name != 'string': return False return True def is_kube_resource(self): return self.is_kube_object() and self.has_kube_metadata() def is_kube_resource_list(self): kind_property = self.properties.get('kind') if not kind_property or kind_property.data_type.name != 'string': return False api_version_property = self.properties.get('apiVersion') if not api_version_property or api_version_property.data_type.name != 'string': return False return self.has_kube_list_metadata() def has_kube_metadata(self): metadata_property = self.properties.get('metadata') if not metadata_property: return False if metadata_property.data_type.name != 'ObjectMeta': return False return True def has_kube_list_metadata(self): metadata_property = self.properties.get('metadata') if not metadata_property: return False if metadata_property.data_type.name != 'ListMeta': return False return True def has_list_items(self): items_property = self.properties.get('items') if not items_property: return False return items_property.data_type.is_collection() def list_item_data_type(self): if not self.has_list_items(): return None return self.properties['items'].data_type.element_type @classmethod def from_definition(cls, definition_name, definition): (name, api_version, pretty_api_version) = KubeModel.get_model_info(definition_name) summary = definition.get( 'description', 'No description provided.' ).replace( '&', '&' ).replace( '<', '<' ).replace( '>', '>' ) required_property_keys = set( definition.get('required') or [] ) # Override model metadata with Kubernetes-specific values, if available. kube_group = '' if 'x-kubernetes-group-version-kind' in definition: kube_metadata = definition['x-kubernetes-group-version-kind'][0] kube_group = kube_metadata.get('group', '') kube_kind = kube_metadata['kind'] api_version = kube_metadata['version'] name = kube_kind return KubeModel(name, summary, api_version, pretty_api_version, kube_group, required_property_keys) @classmethod def get_model_info(cls, definition_name): name_components = definition_name.split('.') if len(name_components) < 2: return (definition_name[-1], '', '') name = capitalize_name(name_components[-1]) api_version = name_components[-2] pretty_api_version = api_version.capitalize().replace( 'alpha', 'Alpha' ).replace( 'beta', 'Beta' ) # don't double up on version in model names if name.endswith(pretty_api_version): name = name[:-len(pretty_api_version)] return (name, api_version, pretty_api_version) def __repr__(self): return 'KubeModel(name="{}",version="{}")\n{}'.format( self.name, self.api_version, pprint.pformat([ self.properties.values() ]) ) class KubeModelProperty(object): def __init__(self, name, json_name, summary, data_type, is_optional, is_merge, is_retain_keys, merge_key): self.name = sanitize_name(name) self.json_name = json_name self.summary = summary or 'No summary provided' self.summary = self.summary.replace( '&', '&' ).replace( '<', '<' ).replace( '>', '>' ) self.data_type = data_type self.is_optional = is_optional self.is_merge = is_merge self.is_retain_keys = is_retain_keys self.merge_key = merge_key def __repr__(self): return 'KubeModelProperty(name="{}",type={})'.format( self.name, repr(self.data_type) ) @classmethod def from_definition(cls, name, json_name, property_definition, data_types, is_optional): summary = property_definition.get('description', 'Description not provided.') data_type = KubeDataType.from_definition(property_definition, data_types) is_merge = False is_retain_keys = False if property_definition.get('x-kubernetes-patch-strategy') == 'merge': is_merge = True elif property_definition.get('x-kubernetes-patch-strategy') == 'merge,retainKeys': is_merge = True is_retain_keys = True elif property_definition.get('x-kubernetes-patch-strategy') == 'retainKeys': is_retain_keys = True merge_key = property_definition.get('x-kubernetes-patch-merge-key') return KubeModelProperty(name, json_name, summary, data_type, is_optional, is_merge, is_retain_keys, merge_key) class KubeDataType(object): def __init__(self, name, summary): self.name = name self.summary = summary def is_intrinsic(self): return False def is_collection(self): return False def to_clr_type_name(self, is_nullable=False): return get_cts_type_name(self.name) def __repr__(self): return "KubeDataType(name='{0}')".format(self.name) @classmethod def from_definition(cls, definition, data_types): if 'type' in definition: type_name = definition['type'] type_format = definition.get('format') if type_name == 'array': item_definition = definition['items'] element_type = KubeDataType.from_definition(item_definition, data_types) return KubeArrayDataType(element_type) elif type_name == 'object': item_definition = definition['additionalProperties'] element_type = KubeDataType.from_definition(item_definition, data_types) return KubeDictionaryDataType(element_type) elif type_name == 'number': if type_format == 'double': return KubeIntrinsicDataType('double') elif type_name == 'integer': if type_format == 'int32': return KubeIntrinsicDataType('int') elif type_format == 'int64': return KubeIntrinsicDataType('long') else: if type_name in data_types: return data_types[type_name] data_type = KubeIntrinsicDataType(type_name) data_types[type_name] = data_type return data_type type_name = definition['$ref'].replace('#/definitions/', '') if type_name in data_types: return data_types[type_name] summary = definition.get('description', 'Description not provided.') data_type = KubeDataType(type_name, summary) data_types[type_name] = data_type return data_type class KubeIntrinsicDataType(KubeDataType): def __init__(self, name): super().__init__(name, 'Intrinsic data-type.') def is_intrinsic(self): return True def __repr__(self): return "KubeIntrinsicDataType(name='{0}')".format(self.name) def to_clr_type_name(self, is_nullable=False): clr_type_name = super().to_clr_type_name(is_nullable) if (is_nullable and clr_type_name in VALUE_TYPE_NAMES) or clr_type_name == 'DateTime': clr_type_name += '?' return clr_type_name class KubeArrayDataType(KubeDataType): def __init__(self, element_type): super().__init__(element_type.name, element_type.summary) self.element_type = element_type def is_collection(self): return True def __repr__(self): return "KubeArrayDataType(element_type={0})".format( repr(self.element_type) ) def to_clr_type_name(self, is_nullable=False): return 'List<{}>'.format( get_cts_type_name(self.element_type.to_clr_type_name(is_nullable)).replace('?', '') # List would be odious to deal with. ) class KubeDictionaryDataType(KubeDataType): def __init__(self, element_type): super().__init__(element_type.name, element_type.summary) self.element_type = element_type def is_collection(self): return True def __repr__(self): return "KubeDictionaryDataType(element_type={0})".format( repr(self.element_type) ) def to_clr_type_name(self, is_nullable=False): return 'Dictionary'.format( # AFAICT, Kubernetes models only use strings as dictionary keys get_cts_type_name(self.element_type.to_clr_type_name(is_nullable)).replace('?', '') # Dictionary would be odious to deal with. ) class KubeModelDataType(KubeDataType): def __init__(self, model): super().__init__(model.name, model.summary) self.model = model self.clr_name = self.model.name + self.model.api_version def __repr__(self): return "KubeModelDataType(kind='{0}', api_version='{1}', clr_type_name='{2}')".format( self.model.name, self.model.pretty_api_version, self.to_clr_type_name() ) def to_clr_type_name(self, is_nullable=False): return self.model.clr_name def capitalize_name(name): return name[0].capitalize() + name[1:] def sanitize_name(name): name_components = name.split('-') if name_components[0] == 'x': name_components = name_components[1:] return ''.join([ capitalize_name(name_component) for name_component in name_components ]) def get_defname_sort_key(definition_name): (type_name, _, _) = KubeModel.get_model_info(definition_name) return type_name def get_cts_type_name(swagger_type_name): if swagger_type_name == 'integer': return 'int' if swagger_type_name == 'boolean': return 'bool' return swagger_type_name def parse_models(definitions): models = { definition_name: KubeModel.from_definition( definition_name, definitions[definition_name] ) for definition_name in definitions.keys() if definition_name not in IGNORE_MODELS } # Some model definitions are deprecated, and remapped to other definitions for (definition_name, definition) in definitions.items(): if definition_name in IGNORE_MODELS: continue # Remapped (stub) models have '$ref' but not 'properties'. if '$ref' in definition and 'properties' not in definition: map_to_definition_name = definition['$ref'].replace('#/definitions/', '') if map_to_definition_name in IGNORE_MODELS: continue # Point the model name to the updated definition. models[definition_name] = models[map_to_definition_name] return models def get_data_types(models): data_types = { model_name: KubeModelDataType( models[model_name] ) for model_name in models.keys() } # Well-known intrinsic data-types data_types.update({ 'integer': KubeIntrinsicDataType('int'), 'string': KubeIntrinsicDataType('string'), 'io.k8s.apimachinery.pkg.apis.meta.v1.Time': KubeIntrinsicDataType('DateTime'), 'io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime': KubeIntrinsicDataType('DateTime'), 'io.k8s.apimachinery.pkg.util.intstr.IntOrString': KubeIntrinsicDataType('Int32OrStringV1'), 'io.k8s.apimachinery.pkg.api.resource.Quantity': KubeIntrinsicDataType('string'), 'io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions': KubeIntrinsicDataType('DeleteOptionsV1') # This model is hand-crafted }) return data_types def parse_properties(models, data_types, definitions): for definition_name in definitions.keys(): definition = definitions[definition_name] if definition_name not in models: continue properties = definition.get('properties') if not properties: continue model = models[definition_name] model.update_properties(properties, data_types) def parse_apis(api_paths): apis = {} for api_path in sorted(api_paths.keys()): api_verbs = api_paths[api_path] for api_verb in sorted(api_verbs.keys()): if api_verb == 'parameters': continue api_metadata = api_verbs[api_verb] if 'x-kubernetes-action' not in api_metadata or 'x-kubernetes-group-version-kind' not in api_metadata: continue action = api_metadata['x-kubernetes-action'] resource_metadata = api_metadata['x-kubernetes-group-version-kind'] resource_group = resource_metadata['group'] resource_api_version = resource_metadata['version'] resource_kind = resource_metadata['kind'] api_key = '{}/{}/{}'.format(resource_group, resource_api_version, resource_kind) api = apis.get(api_key) if not api: api = {} apis[api_key] = api if action not in api: api[action] = [] api[action].append(api_path) return apis def main(): try: os.stat(BASE_DIRECTORY) except FileNotFoundError: os.mkdir(BASE_DIRECTORY) with open('kube-1.31-swagger.json') as kube_swagger_file: kube_swagger = json.load(kube_swagger_file) paths = kube_swagger["paths"] apis = parse_apis(paths) definitions = kube_swagger["definitions"] models = parse_models(definitions) data_types = get_data_types(models) parse_properties(models, data_types, definitions) for definition_name in sorted(definitions.keys(), key=get_defname_sort_key): if definition_name in IGNORE_MODELS: continue model = models[definition_name] class_namespace = ROOT_NAMESPACE class_directory_path = BASE_DIRECTORY if not os.path.exists(class_directory_path): os.mkdir(class_directory_path) resource_api_key = '{}/{}/{}'.format(model.kube_group, model.api_version, model.name) resource_api = apis.get(resource_api_key) class_file_name = os.path.join(class_directory_path, model.clr_name + '.cs') with open(class_file_name, 'w') as class_file: class_file.write('using Newtonsoft.Json;' + LINE_ENDING) class_file.write('using System;' + LINE_ENDING) class_file.write('using System.Collections.Generic;' + LINE_ENDING) class_file.write('using YamlDotNet.Serialization;' + LINE_ENDING) class_file.write(LINE_ENDING) class_file.write('namespace ' + class_namespace + LINE_ENDING) class_file.write('{' + LINE_ENDING) class_file.write(' /// ' + LINE_ENDING) for model_summary_line in model.summary.split('\n'): class_file.write(' /// ' + model_summary_line + LINE_ENDING) class_file.write(' /// ' + LINE_ENDING) model_annotations = [] if model.has_list_items(): try: list_item_model = model.list_item_data_type().model except AttributeError: print('List item datatype "{0}" is not a model'.format(model.name)) pprint.pprint(model.list_item_data_type) raise model_annotations.append(' [KubeListItem("{0}", "{1}")]{2}'.format( list_item_model.name, list_item_model.api_groupversion, LINE_ENDING )) if model.is_kube_resource() or model.is_kube_resource_list(): model_annotations.append(' [KubeObject("{0}", "{1}")]{2}'.format( model.name, model.api_groupversion, LINE_ENDING )) # TODO: Add KubeResourceAliasAttribute, but how do we infer singularName and shortNames? These are only available via the API. if model.is_kube_resource() and resource_api: added_annotations = set() action_paths = {} for action in sorted(resource_api.keys()): api_paths = resource_api[action] api_action = 'KubeAction.' + KUBE_ACTIONS.get(action, action.capitalize() # Default ) for api_path in api_paths: if api_action not in action_paths: action_paths[api_action] = [] action_paths[api_action].append(api_path) for api_action in sorted(action_paths.keys()): for api_path in sorted(action_paths[api_action]): annotation = ' [KubeApi({0}, "{1}")]{2}'.format( api_action, api_path.strip('/'), LINE_ENDING ) # Ignore duplicates. if annotation not in added_annotations: model_annotations.append(annotation) added_annotations.add(annotation) model_annotations.sort(key=len) # Shorter attributes come first for model_annotation in model_annotations: class_file.write(model_annotation) class_file.write(' public partial class ' + model.clr_name) if model.is_kube_resource(): class_file.write(' : KubeResourceV1') elif model.is_kube_resource_list(): if model.has_list_items(): class_file.write(' : KubeResourceListV1<{0}>'.format( model.list_item_data_type().to_clr_type_name() )) else: class_file.write(' : KubeResourceListV1') elif model.is_kube_object(): class_file.write(' : KubeObjectV1') class_file.write(LINE_ENDING) class_file.write(' {' + LINE_ENDING) properties = model.properties property_names = [name for name in properties.keys()] if model.is_kube_object(): property_names.remove('apiVersion') property_names.remove('kind') if model.has_kube_metadata() or model.has_kube_list_metadata(): property_names.remove('metadata') if model.is_kube_resource_list() and model.has_list_items(): property_names.remove('items') for property_index in range(0, len(property_names)): property_name = property_names[property_index] model_property = properties[property_name] class_file.write(' /// ' + LINE_ENDING) for property_summary_line in model_property.summary.split('\n'): class_file.write(' /// ' + property_summary_line + LINE_ENDING) class_file.write(' /// ' + LINE_ENDING) if model_property.data_type.is_collection(): if model_property.is_retain_keys: class_file.write(' [RetainKeysStrategy]%s' % (LINE_ENDING, )) # Shorter attribute comes before [YamlMember]... if model_property.is_merge: if not model_property.merge_key: class_file.write(' [MergeStrategy]%s' % (LINE_ENDING,)) elif len(model_property.merge_key) <= len(model_property.json_name): class_file.write(' [MergeStrategy(Key = "%s")]%s' % (model_property.merge_key, LINE_ENDING)) class_file.write(' [YamlMember(Alias = "%s")]%s' % (model_property.json_name, LINE_ENDING)) # ...but longer attribute comes after [YamlMember]. if model_property.is_merge: if model_property.merge_key and len(model_property.merge_key) > len(model_property.json_name): class_file.write(' [MergeStrategy(Key = "%s")]%s' % (model_property.merge_key, LINE_ENDING)) class_file.write(' [JsonProperty("%s", ObjectCreationHandling = ObjectCreationHandling.Reuse)]%s' % (model_property.json_name, LINE_ENDING)) class_file.write(' public %s %s { get; } = new %s();%s' % ( model_property.data_type.to_clr_type_name(), model_property.name, model_property.data_type.to_clr_type_name(), LINE_ENDING )) # Don't serialise empty lists for optional properties. # See tintoy/dotnet-kube-client#36 for reasoning behind this. if model_property.is_optional: class_file.write(LINE_ENDING) class_file.write(' /// ' + LINE_ENDING) class_file.write(' /// Determine whether the property should be serialised.{1}'.format(model_property.name, LINE_ENDING)) class_file.write(' /// ' + LINE_ENDING) class_file.write(' public bool ShouldSerialize{0}() => {0}.Count > 0;{1}'.format(model_property.name, LINE_ENDING)) else: if model_property.is_retain_keys: class_file.write(' [RetainKeysStrategy]%s' % (LINE_ENDING, )) # Shorter attribute comes before [JsonProperty]... if model_property.is_merge: if not model_property.merge_key: class_file.write(' [MergeStrategy]%s' % (LINE_ENDING,)) class_file.write(' [YamlMember(Alias = "%s")]%s' % (model_property.json_name, LINE_ENDING)) if model_property.is_optional: class_file.write(' [JsonProperty("%s", NullValueHandling = NullValueHandling.Ignore)]%s' % (model_property.json_name, LINE_ENDING)) else: class_file.write(' [JsonProperty("%s", NullValueHandling = NullValueHandling.Include)]%s' % (model_property.json_name, LINE_ENDING)) # ...but longer attribute comes after [YamlMember]. if model_property.is_merge: if model_property.merge_key: class_file.write(' [MergeStrategy(Key = "%s")]%s' % (model_property.merge_key, LINE_ENDING)) class_file.write(' public %s %s { get; set; }%s' % ( model_property.data_type.to_clr_type_name(is_nullable=model_property.is_optional), model_property.name, LINE_ENDING )) if property_index + 1 < len(property_names): class_file.write(LINE_ENDING) # Special case for Items property (we override the base class's property, adding the JsonProperty attribute). if model.is_kube_resource_list() and model.has_list_items(): model_property = model.properties['items'] class_file.write(' /// ' + LINE_ENDING) for property_summary_line in model_property.summary.split('\n'): class_file.write(' /// ' + property_summary_line + LINE_ENDING) class_file.write(' /// ' + LINE_ENDING) class_file.write(' [JsonProperty("%s", ObjectCreationHandling = ObjectCreationHandling.Reuse)]%s' % (model_property.json_name, LINE_ENDING)) class_file.write(' public override %s %s { get; } = new %s();%s' % ( model_property.data_type.to_clr_type_name(), model_property.name, model_property.data_type.to_clr_type_name(), LINE_ENDING )) class_file.write(' }' + LINE_ENDING) # Class class_file.write('}' + LINE_ENDING) # Namespace if __name__ == '__main__': main() ================================================ FILE: src/Swagger/kube-1.31-swagger.json ================================================ { "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": { "expression": { "description": "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL 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 admission request(/pkg/apis/admission/types.go#AdmissionRequest). '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.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.", "type": "string" }, "name": { "description": "Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.", "type": "string" } }, "required": [ "name", "expression" ], "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": { "admissionReviewVersions": { "description": "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.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "clientConfig": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", "description": "ClientConfig defines how to communicate with the hook. Required" }, "failurePolicy": { "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed 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 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" }, "type": "array", "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, "matchPolicy": { "description": "matchPolicy defines how the \"rules\" 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 webhook.\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 webhook.\n\nDefaults to \"Equivalent\"", "type": "string" }, "name": { "description": "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.", "type": "string" }, "namespaceSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "NamespaceSelector decides whether to run the webhook 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 webhook.\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 webhook 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 webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, 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." }, "reinvocationPolicy": { "description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", "type": "string" }, "rules": { "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" }, "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.", "type": "string" }, "timeoutSeconds": { "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", "format": "int32", "type": "integer" } }, "required": [ "name", "clientConfig", "sideEffects", "admissionReviewVersions" ], "type": "object" }, "io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": { "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", "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." }, "webhooks": { "description": "Webhooks is a list of webhooks and the affected resources and operations.", "items": { "$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" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "MutatingWebhookConfiguration", "version": "v1" } ] }, "io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": { "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", "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 MutatingWebhookConfiguration.", "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "MutatingWebhookConfigurationList", "version": "v1" } ] }, "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": { "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" }, "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" }, "io.k8s.api.admissionregistration.v1.ServiceReference": { "description": "ServiceReference holds a reference to Service.legacy.k8s.io", "properties": { "name": { "description": "`name` is the name of the service. Required", "type": "string" }, "namespace": { "description": "`namespace` is the namespace of the service. Required", "type": "string" }, "path": { "description": "`path` is an optional URL path which will be sent in any request to this service.", "type": "string" }, "port": { "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", "format": "int32", "type": "integer" } }, "required": [ "namespace", "name" ], "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" } }, "required": [ "items" ], "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" } }, "required": [ "items" ], "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": { "admissionReviewVersions": { "description": "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.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "clientConfig": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", "description": "ClientConfig defines how to communicate with the hook. Required" }, "failurePolicy": { "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed 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 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" }, "type": "array", "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, "matchPolicy": { "description": "matchPolicy defines how the \"rules\" 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 webhook.\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 webhook.\n\nDefaults to \"Equivalent\"", "type": "string" }, "name": { "description": "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.", "type": "string" }, "namespaceSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "NamespaceSelector decides whether to run the webhook 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 webhook.\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 webhook 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 webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, 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." }, "rules": { "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" }, "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.", "type": "string" }, "timeoutSeconds": { "description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", "format": "int32", "type": "integer" } }, "required": [ "name", "clientConfig", "sideEffects", "admissionReviewVersions" ], "type": "object" }, "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": { "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and 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." }, "webhooks": { "description": "Webhooks is a list of webhooks and the affected resources and operations.", "items": { "$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" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingWebhookConfiguration", "version": "v1" } ] }, "io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": { "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", "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 ValidatingWebhookConfiguration.", "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingWebhookConfigurationList", "version": "v1" } ] }, "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": { "caBundle": { "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", "format": "byte", "type": "string" }, "service": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference", "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." }, "url": { "description": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", "type": "string" } }, "type": "object" }, "io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.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.v1alpha1.MatchCondition": { "properties": { "expression": { "description": "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL 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 admission request(/pkg/apis/admission/types.go#AdmissionRequest). '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.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.", "type": "string" }, "name": { "description": "Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.", "type": "string" } }, "required": [ "name", "expression" ], "type": "object" }, "io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.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.v1alpha1.NamedRuleWithOperations" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.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.v1alpha1.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\n`name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.", "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` Default to `Deny`", "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.v1alpha1.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.v1alpha1.ExpressionWarning" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicySpec", "description": "Specification of the desired behavior of the ValidatingAdmissionPolicy." }, "status": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.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": "v1alpha1" } ] }, "io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicyBindingSpec", "description": "Specification of the desired behavior of the ValidatingAdmissionPolicyBinding." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } ] }, "io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBindingList", "version": "v1alpha1" } ] }, "io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingSpec": { "description": "ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.", "properties": { "matchResources": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.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.v1alpha1.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.v1alpha1.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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyList", "version": "v1alpha1" } ] }, "io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.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.v1alpha1.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.v1alpha1.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.v1alpha1.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.v1alpha1.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.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicyStatus": { "description": "ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy.", "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.v1alpha1.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.v1alpha1.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.v1alpha1.Variable": { "description": "Variable is the definition of a variable that is used for composition.", "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" }, "io.k8s.api.admissionregistration.v1beta1.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.v1beta1.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.v1beta1.MatchCondition": { "description": "MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.", "properties": { "expression": { "description": "Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL 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 admission request(/pkg/apis/admission/types.go#AdmissionRequest). '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.\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\nRequired.", "type": "string" }, "name": { "description": "Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\nRequired.", "type": "string" } }, "required": [ "name", "expression" ], "type": "object" }, "io.k8s.api.admissionregistration.v1beta1.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.v1beta1.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.v1beta1.NamedRuleWithOperations" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.admissionregistration.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.ExpressionWarning" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.admissionregistration.v1beta1.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.v1beta1.ValidatingAdmissionPolicySpec", "description": "Specification of the desired behavior of the ValidatingAdmissionPolicy." }, "status": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.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": "v1beta1" } ] }, "io.k8s.api.admissionregistration.v1beta1.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.v1beta1.ValidatingAdmissionPolicyBindingSpec", "description": "Specification of the desired behavior of the ValidatingAdmissionPolicyBinding." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } ] }, "io.k8s.api.admissionregistration.v1beta1.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.v1beta1.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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBindingList", "version": "v1beta1" } ] }, "io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBindingSpec": { "description": "ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.", "properties": { "matchResources": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyList", "version": "v1beta1" } ] }, "io.k8s.api.admissionregistration.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.v1beta1.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.apiserverinternal.v1alpha1.ServerStorageVersion": { "description": "An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.", "properties": { "apiServerID": { "description": "The ID of the reporting API server.", "type": "string" }, "decodableVersions": { "description": "The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "encodingVersion": { "description": "The API server encodes the object to this version when persisting it in the backend (e.g., etcd).", "type": "string" }, "servedVersions": { "description": "The API server can serve these versions. DecodableVersions must include all ServedVersions.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" } }, "type": "object" }, "io.k8s.api.apiserverinternal.v1alpha1.StorageVersion": { "description": "Storage version of a specific resource.", "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": "The name is .." }, "spec": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec", "description": "Spec is an empty spec. It is here to comply with Kubernetes API style." }, "status": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus", "description": "API server instances report the version they can decode and the version they encode objects to when persisting objects in the backend." } }, "required": [ "spec", "status" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } ] }, "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition": { "description": "Describes the state of the storageVersion at a certain point.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transitioned from one status to another." }, "message": { "description": "A human readable message indicating details about the transition.", "type": "string" }, "observedGeneration": { "description": "If set, this represents the .metadata.generation that the condition was set based upon.", "format": "int64", "type": "integer" }, "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", "reason", "message" ], "type": "object" }, "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionList": { "description": "A list of StorageVersions.", "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 holds a list of StorageVersion", "items": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "internal.apiserver.k8s.io", "kind": "StorageVersionList", "version": "v1alpha1" } ] }, "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec": { "description": "StorageVersionSpec is an empty spec.", "type": "object" }, "io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus": { "description": "API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.", "properties": { "commonEncodingVersion": { "description": "If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.", "type": "string" }, "conditions": { "description": "The latest available observations of the storageVersion's state.", "items": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map" }, "storageVersions": { "description": "The reported versions per API server instance.", "items": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion" }, "type": "array", "x-kubernetes-list-map-keys": [ "apiServerID" ], "x-kubernetes-list-type": "map" } }, "type": "object" }, "io.k8s.api.apps.v1.ControllerRevision": { "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", "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" }, "data": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", "description": "Data is the serialized representation of the state." }, "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "revision": { "description": "Revision indicates the revision of the state represented by Data.", "format": "int64", "type": "integer" } }, "required": [ "revision" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apps", "kind": "ControllerRevision", "version": "v1" } ] }, "io.k8s.api.apps.v1.ControllerRevisionList": { "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", "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 ControllerRevisions", "items": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" }, "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": "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": "apps", "kind": "ControllerRevisionList", "version": "v1" } ] }, "io.k8s.api.apps.v1.DaemonSet": { "description": "DaemonSet represents the configuration of a daemon set.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec", "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus", "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apps", "kind": "DaemonSet", "version": "v1" } ] }, "io.k8s.api.apps.v1.DaemonSetCondition": { "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transitioned from one status to another." }, "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 DaemonSet condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.apps.v1.DaemonSetList": { "description": "DaemonSetList is a collection of daemon sets.", "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": "A list of daemon sets.", "items": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apps", "kind": "DaemonSetList", "version": "v1" } ] }, "io.k8s.api.apps.v1.DaemonSetSpec": { "description": "DaemonSetSpec is the specification of a daemon set.", "properties": { "minReadySeconds": { "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", "format": "int32", "type": "integer" }, "revisionHistoryLimit": { "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", "format": "int32", "type": "integer" }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" }, "template": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is \"Always\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" }, "updateStrategy": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy", "description": "An update strategy to replace existing DaemonSet pods with new pods." } }, "required": [ "selector", "template" ], "type": "object" }, "io.k8s.api.apps.v1.DaemonSetStatus": { "description": "DaemonSetStatus represents the current status of a daemon set.", "properties": { "collisionCount": { "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", "format": "int32", "type": "integer" }, "conditions": { "description": "Represents the latest available observations of a DaemonSet's current state.", "items": { "$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" }, "currentNumberScheduled": { "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "format": "int32", "type": "integer" }, "desiredNumberScheduled": { "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "format": "int32", "type": "integer" }, "numberAvailable": { "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", "format": "int32", "type": "integer" }, "numberMisscheduled": { "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "format": "int32", "type": "integer" }, "numberReady": { "description": "numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.", "format": "int32", "type": "integer" }, "numberUnavailable": { "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", "format": "int32", "type": "integer" }, "observedGeneration": { "description": "The most recent generation observed by the daemon set controller.", "format": "int64", "type": "integer" }, "updatedNumberScheduled": { "description": "The total number of nodes that are running updated daemon pod", "format": "int32", "type": "integer" } }, "required": [ "currentNumberScheduled", "numberMisscheduled", "desiredNumberScheduled", "numberReady" ], "type": "object" }, "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", "properties": { "rollingUpdate": { "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet", "description": "Rolling update config params. Present only if type = \"RollingUpdate\"." }, "type": { "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", "type": "string" } }, "type": "object" }, "io.k8s.api.apps.v1.Deployment": { "description": "Deployment enables declarative updates for Pods and ReplicaSets.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec", "description": "Specification of the desired behavior of the Deployment." }, "status": { "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus", "description": "Most recently observed status of the Deployment." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apps", "kind": "Deployment", "version": "v1" } ] }, "io.k8s.api.apps.v1.DeploymentCondition": { "description": "DeploymentCondition describes the state of a deployment at a certain point.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transitioned from one status to another." }, "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 deployment condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.apps.v1.DeploymentList": { "description": "DeploymentList is a list of Deployments.", "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 Deployments.", "items": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" }, "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": "apps", "kind": "DeploymentList", "version": "v1" } ] }, "io.k8s.api.apps.v1.DeploymentSpec": { "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", "properties": { "minReadySeconds": { "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", "format": "int32", "type": "integer" }, "paused": { "description": "Indicates that the deployment is paused.", "type": "boolean" }, "progressDeadlineSeconds": { "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", "format": "int32", "type": "integer" }, "replicas": { "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", "format": "int32", "type": "integer" }, "revisionHistoryLimit": { "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", "format": "int32", "type": "integer" }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels." }, "strategy": { "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy", "description": "The deployment strategy to use to replace existing pods with new ones.", "x-kubernetes-patch-strategy": "retainKeys" }, "template": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", "description": "Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \"Always\"." } }, "required": [ "selector", "template" ], "type": "object" }, "io.k8s.api.apps.v1.DeploymentStatus": { "description": "DeploymentStatus is the most recently observed status of the Deployment.", "properties": { "availableReplicas": { "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", "format": "int32", "type": "integer" }, "collisionCount": { "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", "format": "int32", "type": "integer" }, "conditions": { "description": "Represents the latest available observations of a deployment's current state.", "items": { "$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" }, "observedGeneration": { "description": "The generation observed by the deployment controller.", "format": "int64", "type": "integer" }, "readyReplicas": { "description": "readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.", "format": "int32", "type": "integer" }, "replicas": { "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", "format": "int32", "type": "integer" }, "unavailableReplicas": { "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", "format": "int32", "type": "integer" }, "updatedReplicas": { "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.apps.v1.DeploymentStrategy": { "description": "DeploymentStrategy describes how to replace existing pods with new ones.", "properties": { "rollingUpdate": { "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment", "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate." }, "type": { "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", "type": "string" } }, "type": "object" }, "io.k8s.api.apps.v1.ReplicaSet": { "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", "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": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec", "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus", "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apps", "kind": "ReplicaSet", "version": "v1" } ] }, "io.k8s.api.apps.v1.ReplicaSetCondition": { "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "The last time the condition transitioned from one status to another." }, "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 replica set condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.apps.v1.ReplicaSetList": { "description": "ReplicaSetList is a collection of ReplicaSets.", "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 ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", "items": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apps", "kind": "ReplicaSetList", "version": "v1" } ] }, "io.k8s.api.apps.v1.ReplicaSetSpec": { "description": "ReplicaSetSpec is the specification of a ReplicaSet.", "properties": { "minReadySeconds": { "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", "format": "int32", "type": "integer" }, "replicas": { "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", "format": "int32", "type": "integer" }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" }, "template": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" } }, "required": [ "selector" ], "type": "object" }, "io.k8s.api.apps.v1.ReplicaSetStatus": { "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", "properties": { "availableReplicas": { "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", "format": "int32", "type": "integer" }, "conditions": { "description": "Represents the latest available observations of a replica set's current state.", "items": { "$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" }, "fullyLabeledReplicas": { "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", "format": "int32", "type": "integer" }, "observedGeneration": { "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", "format": "int64", "type": "integer" }, "readyReplicas": { "description": "readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.", "format": "int32", "type": "integer" }, "replicas": { "description": "Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", "format": "int32", "type": "integer" } }, "required": [ "replicas" ], "type": "object" }, "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { "description": "Spec to control the desired behavior of daemon set rolling update.", "properties": { "maxSurge": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption." }, "maxUnavailable": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update." } }, "type": "object" }, "io.k8s.api.apps.v1.RollingUpdateDeployment": { "description": "Spec to control the desired behavior of rolling update.", "properties": { "maxSurge": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods." }, "maxUnavailable": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods." } }, "type": "object" }, "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", "properties": { "maxUnavailable": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable." }, "partition": { "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.apps.v1.StatefulSet": { "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\n\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec", "description": "Spec defines the desired identities of pods in this set." }, "status": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus", "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apps", "kind": "StatefulSet", "version": "v1" } ] }, "io.k8s.api.apps.v1.StatefulSetCondition": { "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transitioned from one status to another." }, "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 statefulset condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.apps.v1.StatefulSetList": { "description": "StatefulSetList is a collection of StatefulSets.", "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 stateful sets.", "items": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" }, "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's 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": "apps", "kind": "StatefulSetList", "version": "v1" } ] }, "io.k8s.api.apps.v1.StatefulSetOrdinals": { "description": "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.", "properties": { "start": { "description": "start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\n [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\nIf unset, defaults to 0. Replica indices will be in the range:\n [0, .spec.replicas).", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy": { "description": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.", "properties": { "whenDeleted": { "description": "WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.", "type": "string" }, "whenScaled": { "description": "WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.", "type": "string" } }, "type": "object" }, "io.k8s.api.apps.v1.StatefulSetSpec": { "description": "A StatefulSetSpec is the specification of a StatefulSet.", "properties": { "minReadySeconds": { "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", "format": "int32", "type": "integer" }, "ordinals": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetOrdinals", "description": "ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \"0\" index to the first replica and increments the index by one for each additional replica requested." }, "persistentVolumeClaimRetentionPolicy": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy", "description": "persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is beta." }, "podManagementPolicy": { "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", "type": "string" }, "replicas": { "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", "format": "int32", "type": "integer" }, "revisionHistoryLimit": { "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", "format": "int32", "type": "integer" }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" }, "serviceName": { "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", "type": "string" }, "template": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format -. For example, a pod in a StatefulSet named \"web\" with index number \"3\" would be named \"web-3\". The only allowed template.spec.restartPolicy value is \"Always\"." }, "updateStrategy": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy", "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template." }, "volumeClaimTemplates": { "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "selector", "template", "serviceName" ], "type": "object" }, "io.k8s.api.apps.v1.StatefulSetStatus": { "description": "StatefulSetStatus represents the current state of a StatefulSet.", "properties": { "availableReplicas": { "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.", "format": "int32", "type": "integer" }, "collisionCount": { "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", "format": "int32", "type": "integer" }, "conditions": { "description": "Represents the latest available observations of a statefulset's current state.", "items": { "$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" }, "currentReplicas": { "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "format": "int32", "type": "integer" }, "currentRevision": { "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", "type": "string" }, "observedGeneration": { "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", "format": "int64", "type": "integer" }, "readyReplicas": { "description": "readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.", "format": "int32", "type": "integer" }, "replicas": { "description": "replicas is the number of Pods created by the StatefulSet controller.", "format": "int32", "type": "integer" }, "updateRevision": { "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", "type": "string" }, "updatedReplicas": { "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "format": "int32", "type": "integer" } }, "required": [ "replicas" ], "type": "object" }, "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", "properties": { "rollingUpdate": { "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy", "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType." }, "type": { "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", "type": "string" } }, "type": "object" }, "io.k8s.api.authentication.v1.BoundObjectReference": { "description": "BoundObjectReference is a reference to an object that a token is bound to.", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "kind": { "description": "Kind of the referent. Valid kinds are 'Pod' and 'Secret'.", "type": "string" }, "name": { "description": "Name of the referent.", "type": "string" }, "uid": { "description": "UID of the referent.", "type": "string" } }, "type": "object" }, "io.k8s.api.authentication.v1.SelfSubjectReview": { "description": "SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "status": { "$ref": "#/definitions/io.k8s.api.authentication.v1.SelfSubjectReviewStatus", "description": "Status is filled in by the server with the user attributes." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authentication.k8s.io", "kind": "SelfSubjectReview", "version": "v1" } ] }, "io.k8s.api.authentication.v1.SelfSubjectReviewStatus": { "description": "SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.", "properties": { "userInfo": { "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", "description": "User attributes of the user making this request." } }, "type": "object" }, "io.k8s.api.authentication.v1.TokenRequest": { "description": "TokenRequest requests a token for a given service account.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestSpec", "description": "Spec holds information about the request being evaluated" }, "status": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestStatus", "description": "Status is filled in by the server and indicates whether the token can be authenticated." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authentication.k8s.io", "kind": "TokenRequest", "version": "v1" } ] }, "io.k8s.api.authentication.v1.TokenRequestSpec": { "description": "TokenRequestSpec contains client provided parameters of a token request.", "properties": { "audiences": { "description": "Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "boundObjectRef": { "$ref": "#/definitions/io.k8s.api.authentication.v1.BoundObjectReference", "description": "BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation." }, "expirationSeconds": { "description": "ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.", "format": "int64", "type": "integer" } }, "required": [ "audiences" ], "type": "object" }, "io.k8s.api.authentication.v1.TokenRequestStatus": { "description": "TokenRequestStatus is the result of a token request.", "properties": { "expirationTimestamp": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "ExpirationTimestamp is the time of expiration of the returned token." }, "token": { "description": "Token is the opaque bearer token.", "type": "string" } }, "required": [ "token", "expirationTimestamp" ], "type": "object" }, "io.k8s.api.authentication.v1.TokenReview": { "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec", "description": "Spec holds information about the request being evaluated" }, "status": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus", "description": "Status is filled in by the server and indicates whether the request can be authenticated." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authentication.k8s.io", "kind": "TokenReview", "version": "v1" } ] }, "io.k8s.api.authentication.v1.TokenReviewSpec": { "description": "TokenReviewSpec is a description of the token authentication request.", "properties": { "audiences": { "description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "token": { "description": "Token is the opaque bearer token.", "type": "string" } }, "type": "object" }, "io.k8s.api.authentication.v1.TokenReviewStatus": { "description": "TokenReviewStatus is the result of the token authentication request.", "properties": { "audiences": { "description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "authenticated": { "description": "Authenticated indicates that the token was associated with a known user.", "type": "boolean" }, "error": { "description": "Error indicates that the token couldn't be checked", "type": "string" }, "user": { "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", "description": "User is the UserInfo associated with the provided token." } }, "type": "object" }, "io.k8s.api.authentication.v1.UserInfo": { "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", "properties": { "extra": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "Any additional information provided by the authenticator.", "type": "object" }, "groups": { "description": "The names of groups this user is a part of.", "items": { "type": "string" }, "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.", "type": "string" }, "username": { "description": "The name that uniquely identifies this user among all active users.", "type": "string" } }, "type": "object" }, "io.k8s.api.authentication.v1alpha1.SelfSubjectReview": { "description": "SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "status": { "$ref": "#/definitions/io.k8s.api.authentication.v1alpha1.SelfSubjectReviewStatus", "description": "Status is filled in by the server with the user attributes." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authentication.k8s.io", "kind": "SelfSubjectReview", "version": "v1alpha1" } ] }, "io.k8s.api.authentication.v1alpha1.SelfSubjectReviewStatus": { "description": "SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.", "properties": { "userInfo": { "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", "description": "User attributes of the user making this request." } }, "type": "object" }, "io.k8s.api.authentication.v1beta1.SelfSubjectReview": { "description": "SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "status": { "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.SelfSubjectReviewStatus", "description": "Status is filled in by the server with the user attributes." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authentication.k8s.io", "kind": "SelfSubjectReview", "version": "v1beta1" } ] }, "io.k8s.api.authentication.v1beta1.SelfSubjectReviewStatus": { "description": "SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.", "properties": { "userInfo": { "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo", "description": "User attributes of the user making this request." } }, "type": "object" }, "io.k8s.api.authorization.v1.FieldSelectorAttributes": { "description": "FieldSelectorAttributes indicates a field limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.", "properties": { "rawSelector": { "description": "rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.", "type": "string" }, "requirements": { "description": "requirements is the parsed interpretation of a field selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldSelectorRequirement" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.authorization.v1.LabelSelectorAttributes": { "description": "LabelSelectorAttributes indicates a label limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.", "properties": { "rawSelector": { "description": "rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.", "type": "string" }, "requirements": { "description": "requirements is the parsed interpretation of a label selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", "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 list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted." }, "status": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", "description": "Status is filled in by the server and indicates whether the request is allowed or not" } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authorization.k8s.io", "kind": "LocalSubjectAccessReview", "version": "v1" } ] }, "io.k8s.api.authorization.v1.NonResourceAttributes": { "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", "properties": { "path": { "description": "Path is the URL path of the request", "type": "string" }, "verb": { "description": "Verb is the standard HTTP verb", "type": "string" } }, "type": "object" }, "io.k8s.api.authorization.v1.NonResourceRule": { "description": "NonResourceRule holds information that describes a rule for the non-resource", "properties": { "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. \"*\" means all.", "items": { "type": "string" }, "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", "x-kubernetes-list-type": "atomic" } }, "required": [ "verbs" ], "type": "object" }, "io.k8s.api.authorization.v1.ResourceAttributes": { "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", "properties": { "fieldSelector": { "$ref": "#/definitions/io.k8s.api.authorization.v1.FieldSelectorAttributes", "description": "fieldSelector describes the limitation on access based on field. It can only limit access, not broaden it.\n\nThis field is alpha-level. To use this field, you must enable the `AuthorizeWithSelectors` feature gate (disabled by default)." }, "group": { "description": "Group is the API Group of the Resource. \"*\" means all.", "type": "string" }, "labelSelector": { "$ref": "#/definitions/io.k8s.api.authorization.v1.LabelSelectorAttributes", "description": "labelSelector describes the limitation on access based on labels. It can only limit access, not broaden it.\n\nThis field is alpha-level. To use this field, you must enable the `AuthorizeWithSelectors` feature gate (disabled by default)." }, "name": { "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", "type": "string" }, "namespace": { "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", "type": "string" }, "resource": { "description": "Resource is one of the existing resource types. \"*\" means all.", "type": "string" }, "subresource": { "description": "Subresource is one of the existing resource types. \"\" means none.", "type": "string" }, "verb": { "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", "type": "string" }, "version": { "description": "Version is the API Version of the Resource. \"*\" means all.", "type": "string" } }, "type": "object" }, "io.k8s.api.authorization.v1.ResourceRule": { "description": "ResourceRule 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.", "properties": { "apiGroups": { "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", "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. \"*\" means all.", "items": { "type": "string" }, "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", "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", "x-kubernetes-list-type": "atomic" } }, "required": [ "verbs" ], "type": "object" }, "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", "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 list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec", "description": "Spec holds information about the request being evaluated. user and groups must be empty" }, "status": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", "description": "Status is filled in by the server and indicates whether the request is allowed or not" } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authorization.k8s.io", "kind": "SelfSubjectAccessReview", "version": "v1" } ] }, "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", "properties": { "nonResourceAttributes": { "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", "description": "NonResourceAttributes describes information for a non-resource access request" }, "resourceAttributes": { "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", "description": "ResourceAuthorizationAttributes describes information for a resource access request" } }, "type": "object" }, "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", "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 list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec", "description": "Spec holds information about the request being evaluated." }, "status": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus", "description": "Status is filled in by the server and indicates the set of actions a user can perform." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authorization.k8s.io", "kind": "SelfSubjectRulesReview", "version": "v1" } ] }, "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { "description": "SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.", "properties": { "namespace": { "description": "Namespace to evaluate rules for. Required.", "type": "string" } }, "type": "object" }, "io.k8s.api.authorization.v1.SubjectAccessReview": { "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", "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 list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec", "description": "Spec holds information about the request being evaluated" }, "status": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus", "description": "Status is filled in by the server and indicates whether the request is allowed or not" } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "authorization.k8s.io", "kind": "SubjectAccessReview", "version": "v1" } ] }, "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", "properties": { "extra": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", "type": "object" }, "groups": { "description": "Groups is the groups you're testing for.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "nonResourceAttributes": { "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", "description": "NonResourceAttributes describes information for a non-resource access request" }, "resourceAttributes": { "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes", "description": "ResourceAuthorizationAttributes describes information for a resource access request" }, "uid": { "description": "UID information about the requesting user.", "type": "string" }, "user": { "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", "type": "string" } }, "type": "object" }, "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { "description": "SubjectAccessReviewStatus", "properties": { "allowed": { "description": "Allowed is required. True if the action would be allowed, false otherwise.", "type": "boolean" }, "denied": { "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", "type": "boolean" }, "evaluationError": { "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", "type": "string" }, "reason": { "description": "Reason is optional. It indicates why a request was allowed or denied.", "type": "string" } }, "required": [ "allowed" ], "type": "object" }, "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", "properties": { "evaluationError": { "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", "type": "string" }, "incomplete": { "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", "type": "boolean" }, "nonResourceRules": { "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", "items": { "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" }, "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", "x-kubernetes-list-type": "atomic" } }, "required": [ "resourceRules", "nonResourceRules", "incomplete" ], "type": "object" }, "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", "properties": { "apiVersion": { "description": "apiVersion is the API version of the referent", "type": "string" }, "kind": { "description": "kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "required": [ "kind", "name" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { "description": "configuration of a horizontal pod autoscaler.", "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.autoscaling.v1.HorizontalPodAutoscalerSpec", "description": "spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." }, "status": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus", "description": "status is the current information about the autoscaler." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } ] }, "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { "description": "list of horizontal pod autoscaler objects.", "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 horizontal pod autoscaler objects.", "items": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" }, "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": "autoscaling", "kind": "HorizontalPodAutoscalerList", "version": "v1" } ] }, "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { "description": "specification of a horizontal pod autoscaler.", "properties": { "maxReplicas": { "description": "maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", "format": "int32", "type": "integer" }, "minReplicas": { "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", "format": "int32", "type": "integer" }, "scaleTargetRef": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference", "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource." }, "targetCPUUtilizationPercentage": { "description": "targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", "format": "int32", "type": "integer" } }, "required": [ "scaleTargetRef", "maxReplicas" ], "type": "object" }, "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { "description": "current status of a horizontal pod autoscaler", "properties": { "currentCPUUtilizationPercentage": { "description": "currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", "format": "int32", "type": "integer" }, "currentReplicas": { "description": "currentReplicas is the current number of replicas of pods managed by this autoscaler.", "format": "int32", "type": "integer" }, "desiredReplicas": { "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler.", "format": "int32", "type": "integer" }, "lastScaleTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed." }, "observedGeneration": { "description": "observedGeneration is the most recent generation observed by this autoscaler.", "format": "int64", "type": "integer" } }, "required": [ "currentReplicas", "desiredReplicas" ], "type": "object" }, "io.k8s.api.autoscaling.v1.Scale": { "description": "Scale represents a scaling request for a resource.", "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.autoscaling.v1.ScaleSpec", "description": "spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." }, "status": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus", "description": "status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "autoscaling", "kind": "Scale", "version": "v1" } ] }, "io.k8s.api.autoscaling.v1.ScaleSpec": { "description": "ScaleSpec describes the attributes of a scale subresource.", "properties": { "replicas": { "description": "replicas is the desired number of instances for the scaled object.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.autoscaling.v1.ScaleStatus": { "description": "ScaleStatus represents the current status of a scale subresource.", "properties": { "replicas": { "description": "replicas is the actual number of observed instances of the scaled object.", "format": "int32", "type": "integer" }, "selector": { "description": "selector is the label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/", "type": "string" } }, "required": [ "replicas" ], "type": "object" }, "io.k8s.api.autoscaling.v2.ContainerResourceMetricSource": { "description": "ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", "properties": { "container": { "description": "container is the name of the container in the pods of the scaling target", "type": "string" }, "name": { "description": "name is the name of the resource in question.", "type": "string" }, "target": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", "description": "target specifies the target value for the given metric" } }, "required": [ "name", "target", "container" ], "type": "object" }, "io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus": { "description": "ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", "properties": { "container": { "description": "container is the name of the container in the pods of the scaling target", "type": "string" }, "current": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", "description": "current contains the current value for the given metric" }, "name": { "description": "name is the name of the resource in question.", "type": "string" } }, "required": [ "name", "current", "container" ], "type": "object" }, "io.k8s.api.autoscaling.v2.CrossVersionObjectReference": { "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", "properties": { "apiVersion": { "description": "apiVersion is the API version of the referent", "type": "string" }, "kind": { "description": "kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "required": [ "kind", "name" ], "type": "object" }, "io.k8s.api.autoscaling.v2.ExternalMetricSource": { "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", "properties": { "metric": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", "description": "metric identifies the target metric by name and selector" }, "target": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", "description": "target specifies the target value for the given metric" } }, "required": [ "metric", "target" ], "type": "object" }, "io.k8s.api.autoscaling.v2.ExternalMetricStatus": { "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", "properties": { "current": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", "description": "current contains the current value for the given metric" }, "metric": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", "description": "metric identifies the target metric by name and selector" } }, "required": [ "metric", "current" ], "type": "object" }, "io.k8s.api.autoscaling.v2.HPAScalingPolicy": { "description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", "properties": { "periodSeconds": { "description": "periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", "format": "int32", "type": "integer" }, "type": { "description": "type is used to specify the scaling policy.", "type": "string" }, "value": { "description": "value contains the amount of change which is permitted by the policy. It must be greater than zero", "format": "int32", "type": "integer" } }, "required": [ "type", "value", "periodSeconds" ], "type": "object" }, "io.k8s.api.autoscaling.v2.HPAScalingRules": { "description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", "properties": { "policies": { "description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", "items": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingPolicy" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "selectPolicy": { "description": "selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.", "type": "string" }, "stabilizationWindowSeconds": { "description": "stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler": { "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", "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": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec", "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status." }, "status": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus", "description": "status is the current information about the autoscaler." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } ] }, "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior": { "description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", "properties": { "scaleDown": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules", "description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)." }, "scaleUp": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules", "description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used." } }, "type": "object" }, "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition": { "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastTransitionTime is the last time the condition transitioned from one status to another" }, "message": { "description": "message is a human-readable explanation containing details about the transition", "type": "string" }, "reason": { "description": "reason is the reason for the condition's last transition.", "type": "string" }, "status": { "description": "status is the status of the condition (True, False, Unknown)", "type": "string" }, "type": { "description": "type describes the current condition", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerList": { "description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", "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 horizontal pod autoscaler objects.", "items": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" }, "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": "metadata is the standard list metadata." } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "autoscaling", "kind": "HorizontalPodAutoscalerList", "version": "v2" } ] }, "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec": { "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", "properties": { "behavior": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior", "description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used." }, "maxReplicas": { "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", "format": "int32", "type": "integer" }, "metrics": { "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", "items": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricSpec" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "minReplicas": { "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", "format": "int32", "type": "integer" }, "scaleTargetRef": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference", "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count." } }, "required": [ "scaleTargetRef", "maxReplicas" ], "type": "object" }, "io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus": { "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", "properties": { "conditions": { "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", "items": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, "currentMetrics": { "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", "items": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricStatus" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "currentReplicas": { "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", "format": "int32", "type": "integer" }, "desiredReplicas": { "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", "format": "int32", "type": "integer" }, "lastScaleTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed." }, "observedGeneration": { "description": "observedGeneration is the most recent generation observed by this autoscaler.", "format": "int64", "type": "integer" } }, "required": [ "desiredReplicas" ], "type": "object" }, "io.k8s.api.autoscaling.v2.MetricIdentifier": { "description": "MetricIdentifier defines the name and optionally selector for a metric", "properties": { "name": { "description": "name is the name of the given metric", "type": "string" }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics." } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.autoscaling.v2.MetricSpec": { "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", "properties": { "containerResource": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricSource", "description": "containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag." }, "external": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricSource", "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." }, "object": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricSource", "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." }, "pods": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.PodsMetricSource", "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." }, "resource": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricSource", "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." }, "type": { "description": "type is the type of metric source. It should be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object. Note: \"ContainerResource\" type is available on when the feature-gate HPAContainerMetrics is enabled", "type": "string" } }, "required": [ "type" ], "type": "object" }, "io.k8s.api.autoscaling.v2.MetricStatus": { "description": "MetricStatus describes the last-read state of a single metric.", "properties": { "containerResource": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus", "description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." }, "external": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricStatus", "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)." }, "object": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricStatus", "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)." }, "pods": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.PodsMetricStatus", "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value." }, "resource": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricStatus", "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source." }, "type": { "description": "type is the type of metric source. It will be one of \"ContainerResource\", \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object. Note: \"ContainerResource\" type is available on when the feature-gate HPAContainerMetrics is enabled", "type": "string" } }, "required": [ "type" ], "type": "object" }, "io.k8s.api.autoscaling.v2.MetricTarget": { "description": "MetricTarget defines the target value, average value, or average utilization of a specific metric", "properties": { "averageUtilization": { "description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", "format": "int32", "type": "integer" }, "averageValue": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)" }, "type": { "description": "type represents whether the metric type is Utilization, Value, or AverageValue", "type": "string" }, "value": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "value is the target value of the metric (as a quantity)." } }, "required": [ "type" ], "type": "object" }, "io.k8s.api.autoscaling.v2.MetricValueStatus": { "description": "MetricValueStatus holds the current value for a metric", "properties": { "averageUtilization": { "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", "format": "int32", "type": "integer" }, "averageValue": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)" }, "value": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "value is the current value of the metric (as a quantity)." } }, "type": "object" }, "io.k8s.api.autoscaling.v2.ObjectMetricSource": { "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", "properties": { "describedObject": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference", "description": "describedObject specifies the descriptions of a object,such as kind,name apiVersion" }, "metric": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", "description": "metric identifies the target metric by name and selector" }, "target": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", "description": "target specifies the target value for the given metric" } }, "required": [ "describedObject", "target", "metric" ], "type": "object" }, "io.k8s.api.autoscaling.v2.ObjectMetricStatus": { "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", "properties": { "current": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", "description": "current contains the current value for the given metric" }, "describedObject": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference", "description": "DescribedObject specifies the descriptions of a object,such as kind,name apiVersion" }, "metric": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", "description": "metric identifies the target metric by name and selector" } }, "required": [ "metric", "current", "describedObject" ], "type": "object" }, "io.k8s.api.autoscaling.v2.PodsMetricSource": { "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", "properties": { "metric": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", "description": "metric identifies the target metric by name and selector" }, "target": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", "description": "target specifies the target value for the given metric" } }, "required": [ "metric", "target" ], "type": "object" }, "io.k8s.api.autoscaling.v2.PodsMetricStatus": { "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", "properties": { "current": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", "description": "current contains the current value for the given metric" }, "metric": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier", "description": "metric identifies the target metric by name and selector" } }, "required": [ "metric", "current" ], "type": "object" }, "io.k8s.api.autoscaling.v2.ResourceMetricSource": { "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", "properties": { "name": { "description": "name is the name of the resource in question.", "type": "string" }, "target": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget", "description": "target specifies the target value for the given metric" } }, "required": [ "name", "target" ], "type": "object" }, "io.k8s.api.autoscaling.v2.ResourceMetricStatus": { "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", "properties": { "current": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus", "description": "current contains the current value for the given metric" }, "name": { "description": "name is the name of the resource in question.", "type": "string" } }, "required": [ "name", "current" ], "type": "object" }, "io.k8s.api.batch.v1.CronJob": { "description": "CronJob represents the configuration of a single cron job.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJobSpec", "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJobStatus", "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "batch", "kind": "CronJob", "version": "v1" } ] }, "io.k8s.api.batch.v1.CronJobList": { "description": "CronJobList is a collection of cron jobs.", "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 CronJobs.", "items": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "batch", "kind": "CronJobList", "version": "v1" } ] }, "io.k8s.api.batch.v1.CronJobSpec": { "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", "properties": { "concurrencyPolicy": { "description": "Specifies how to treat concurrent executions of a Job. Valid values are:\n\n- \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", "type": "string" }, "failedJobsHistoryLimit": { "description": "The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.", "format": "int32", "type": "integer" }, "jobTemplate": { "$ref": "#/definitions/io.k8s.api.batch.v1.JobTemplateSpec", "description": "Specifies the job that will be created when executing a CronJob." }, "schedule": { "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", "type": "string" }, "startingDeadlineSeconds": { "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", "format": "int64", "type": "integer" }, "successfulJobsHistoryLimit": { "description": "The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.", "format": "int32", "type": "integer" }, "suspend": { "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", "type": "boolean" }, "timeZone": { "description": "The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones", "type": "string" } }, "required": [ "schedule", "jobTemplate" ], "type": "object" }, "io.k8s.api.batch.v1.CronJobStatus": { "description": "CronJobStatus represents the current state of a cron job.", "properties": { "active": { "description": "A list of pointers to currently running jobs.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "lastScheduleTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Information when was the last time the job was successfully scheduled." }, "lastSuccessfulTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Information when was the last time the job successfully completed." } }, "type": "object" }, "io.k8s.api.batch.v1.Job": { "description": "Job represents the configuration of a single job.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus", "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "batch", "kind": "Job", "version": "v1" } ] }, "io.k8s.api.batch.v1.JobCondition": { "description": "JobCondition describes current state of a job.", "properties": { "lastProbeTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition was checked." }, "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transit from one status to another." }, "message": { "description": "Human readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "(brief) 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 job condition, Complete or Failed.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.batch.v1.JobList": { "description": "JobList is a collection of jobs.", "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 Jobs.", "items": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "batch", "kind": "JobList", "version": "v1" } ] }, "io.k8s.api.batch.v1.JobSpec": { "description": "JobSpec describes how the job execution will look like.", "properties": { "activeDeadlineSeconds": { "description": "Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.", "format": "int64", "type": "integer" }, "backoffLimit": { "description": "Specifies the number of retries before marking this job failed. Defaults to 6", "format": "int32", "type": "integer" }, "backoffLimitPerIndex": { "description": "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).", "format": "int32", "type": "integer" }, "completionMode": { "description": "completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`.\n\n`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.\n\n`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)`.\n\nMore 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.", "type": "string" }, "completions": { "description": "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/", "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 63 characters. This field is immutable.\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" }, "maxFailedIndexes": { "description": "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).", "format": "int32", "type": "integer" }, "parallelism": { "description": "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/", "format": "int32", "type": "integer" }, "podFailurePolicy": { "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicy", "description": "Specifies the policy of handling failed pods. In particular, it allows to specify the set of actions and conditions which need to be satisfied to take the associated action. If empty, the default behaviour applies - the counter of failed pods, represented by the jobs's .status.failed field, is incremented and it is checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure." }, "podReplacementPolicy": { "description": "podReplacementPolicy specifies when to create replacement Pods. Possible values are: - TerminatingOrFailed means that we recreate pods\n when they are terminating (has a metadata.deletionTimestamp) or failed.\n- Failed means to wait until a previously created Pod is fully terminated (has phase\n Failed or Succeeded) before creating a replacement Pod.\n\nWhen 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.", "type": "string" }, "selector": { "$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 beta-level. To use this field, you must enable the `JobSuccessPolicy` feature gate (enabled 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" }, "template": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", "description": "Describes the pod that will be created when executing a job. The only allowed template.spec.restartPolicy values are \"Never\" or \"OnFailure\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/" }, "ttlSecondsAfterFinished": { "description": "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.", "format": "int32", "type": "integer" } }, "required": [ "template" ], "type": "object" }, "io.k8s.api.batch.v1.JobStatus": { "description": "JobStatus represents the current state of a Job.", "properties": { "active": { "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" }, "completedIndexes": { "description": "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\".", "type": "string" }, "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 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.\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" }, "type": "array", "x-kubernetes-list-type": "atomic", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, "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 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": { "description": "The number of active pods which have a Ready condition and are not terminating (without a deletionTimestamp).", "format": "int32", "type": "integer" }, "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.\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. 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" }, "terminating": { "description": "The number of pods which are terminating (in phase Pending or Running and have a deletionTimestamp).\n\nThis field is beta-level. The job controller populates the field when the feature gate JobPodReplacementPolicy is enabled (enabled by default).", "format": "int32", "type": "integer" }, "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. The structure is empty for finished jobs." } }, "type": "object" }, "io.k8s.api.batch.v1.JobTemplateSpec": { "description": "JobTemplateSpec describes the data a Job should have when created from a template", "properties": { "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec", "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object" }, "io.k8s.api.batch.v1.PodFailurePolicy": { "description": "PodFailurePolicy describes how failed pods influence the backoffLimit.", "properties": { "rules": { "description": "A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.", "items": { "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyRule" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "rules" ], "type": "object" }, "io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement": { "description": "PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.", "properties": { "containerName": { "description": "Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.", "type": "string" }, "operator": { "description": "Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are:\n\n- In: the requirement is satisfied if at least one container exit code\n (might be multiple if there are multiple containers not restricted\n by the 'containerName' field) is in the set of specified values.\n- NotIn: the requirement is satisfied if at least one container exit code\n (might be multiple if there are multiple containers not restricted\n by the 'containerName' field) is not in the set of specified values.\nAdditional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.", "type": "string" }, "values": { "description": "Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.", "items": { "format": "int32", "type": "integer" }, "type": "array", "x-kubernetes-list-type": "set" } }, "required": [ "operator", "values" ], "type": "object" }, "io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern": { "description": "PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.", "properties": { "status": { "description": "Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.", "type": "string" }, "type": { "description": "Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.batch.v1.PodFailurePolicyRule": { "description": "PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule.", "properties": { "action": { "description": "Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are:\n\n- FailJob: indicates that the pod's job is marked as Failed and all\n running pods are terminated.\n- FailIndex: indicates that the pod's index is marked as Failed and will\n not be restarted.\n This value is beta-level. It can be used when the\n `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).\n- Ignore: indicates that the counter towards the .backoffLimit is not\n incremented and a replacement pod is created.\n- Count: indicates that the pod is handled in the default way - the\n counter towards the .backoffLimit is incremented.\nAdditional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.", "type": "string" }, "onExitCodes": { "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement", "description": "Represents the requirement on the container exit codes." }, "onPodConditions": { "description": "Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.", "items": { "$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "action" ], "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": { "failed": { "description": "failed holds UIDs of failed Pods.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "succeeded": { "description": "succeeded holds UIDs of succeeded Pods.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" } }, "type": "object" }, "io.k8s.api.certificates.v1.CertificateSigningRequest": { "description": "CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\n\nKubelets use this API to obtain:\n 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.", "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" }, "spec": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestSpec", "description": "spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users." }, "status": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestStatus", "description": "status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } ] }, "io.k8s.api.certificates.v1.CertificateSigningRequestCondition": { "description": "CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time." }, "lastUpdateTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastUpdateTime is the time of the last update to this condition" }, "message": { "description": "message contains a human readable message with details about the request state", "type": "string" }, "reason": { "description": "reason indicates a brief reason for the request state", "type": "string" }, "status": { "description": "status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".", "type": "string" }, "type": { "description": "type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\nAn \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\n\nA \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\n\nA \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\n\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\n\nOnly one condition of a given type is allowed.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.certificates.v1.CertificateSigningRequestList": { "description": "CertificateSigningRequestList is a collection of CertificateSigningRequest objects", "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 a collection of CertificateSigningRequest objects", "items": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "certificates.k8s.io", "kind": "CertificateSigningRequestList", "version": "v1" } ] }, "io.k8s.api.certificates.v1.CertificateSigningRequestSpec": { "description": "CertificateSigningRequestSpec contains the certificate request.", "properties": { "expirationSeconds": { "description": "expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\n\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\n\nCertificate signers may not honor this field for various reasons:\n\n 1. Old signer that is unaware of the field (such as the in-tree\n implementations prior to v1.22)\n 2. Signer whose configured maximum is shorter than the requested duration\n 3. Signer whose configured minimum is longer than the requested duration\n\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.", "format": "int32", "type": "integer" }, "extra": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", "type": "object" }, "groups": { "description": "groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "request": { "description": "request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.", "format": "byte", "type": "string", "x-kubernetes-list-type": "atomic" }, "signerName": { "description": "signerName indicates the requested signer, and is a qualified name.\n\nList/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\nWell-known Kubernetes signers are:\n 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\nCustom signerNames can also be specified. The signer defines:\n 1. Trust distribution: how trust (CA bundles) are distributed.\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n 4. Required, permitted, or forbidden key usages / extended key usages.\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n 6. Whether or not requests for CA certificates are allowed.", "type": "string" }, "uid": { "description": "uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", "type": "string" }, "usages": { "description": "usages specifies a set of key usages requested in the issued certificate.\n\nRequests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\nRequests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\nValid values are:\n \"signing\", \"digital signature\", \"content commitment\",\n \"key encipherment\", \"key agreement\", \"data encipherment\",\n \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n \"server auth\", \"client auth\",\n \"code signing\", \"email protection\", \"s/mime\",\n \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "username": { "description": "username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", "type": "string" } }, "required": [ "request", "signerName" ], "type": "object" }, "io.k8s.api.certificates.v1.CertificateSigningRequestStatus": { "description": "CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.", "properties": { "certificate": { "description": "certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\nValidation requirements:\n 1. certificate must contain one or more PEM blocks.\n 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n to allow for explanatory text as described in section 5.2 of RFC7468.\n\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\nThe certificate is encoded in PEM format.\n\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\n base64(\n -----BEGIN CERTIFICATE-----\n ...\n -----END CERTIFICATE-----\n )", "format": "byte", "type": "string", "x-kubernetes-list-type": "atomic" }, "conditions": { "description": "conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".", "items": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map" } }, "type": "object" }, "io.k8s.api.certificates.v1alpha1.ClusterTrustBundle": { "description": "ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates).\n\nClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to.\n\nIt can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.", "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": "metadata contains the object metadata." }, "spec": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec", "description": "spec contains the signer (if any) and trust anchors." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } ] }, "io.k8s.api.certificates.v1alpha1.ClusterTrustBundleList": { "description": "ClusterTrustBundleList is a collection of ClusterTrustBundle objects", "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 a collection of ClusterTrustBundle objects", "items": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" }, "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": "metadata contains the list metadata." } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "certificates.k8s.io", "kind": "ClusterTrustBundleList", "version": "v1alpha1" } ] }, "io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec": { "description": "ClusterTrustBundleSpec contains the signer and trust anchors.", "properties": { "signerName": { "description": "signerName indicates the associated signer, if any.\n\nIn order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName= verb=attest.\n\nIf signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`.\n\nIf signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix.\n\nList/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.", "type": "string" }, "trustBundle": { "description": "trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\n\nThe data must consist only of PEM certificate blocks that parse as valid X.509 certificates. Each certificate must include a basic constraints extension with the CA bit set. The API server will reject objects that contain duplicate certificates, or that use PEM block headers.\n\nUsers of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.", "type": "string" } }, "required": [ "trustBundle" ], "type": "object" }, "io.k8s.api.coordination.v1.Lease": { "description": "Lease defines a lease concept.", "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": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec", "description": "spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } ] }, "io.k8s.api.coordination.v1.LeaseList": { "description": "LeaseList is a list of Lease objects.", "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 a list of schema objects.", "items": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "coordination.k8s.io", "kind": "LeaseList", "version": "v1" } ] }, "io.k8s.api.coordination.v1.LeaseSpec": { "description": "LeaseSpec is a specification of a Lease.", "properties": { "acquireTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "acquireTime is a time when the current lease was acquired." }, "holderIdentity": { "description": "holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.", "type": "string" }, "leaseDurationSeconds": { "description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.", "format": "int32", "type": "integer" }, "leaseTransitions": { "description": "leaseTransitions is the number of transitions of a lease between holders.", "format": "int32", "type": "integer" }, "preferredHolder": { "description": "PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.", "type": "string" }, "renewTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "renewTime is a time when the current holder of a lease has last updated the lease." }, "strategy": { "description": "Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.", "type": "string" } }, "type": "object" }, "io.k8s.api.coordination.v1alpha1.LeaseCandidate": { "description": "LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.", "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": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidateSpec", "description": "spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } ] }, "io.k8s.api.coordination.v1alpha1.LeaseCandidateList": { "description": "LeaseCandidateList is a list of Lease objects.", "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 a list of schema objects.", "items": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "coordination.k8s.io", "kind": "LeaseCandidateList", "version": "v1alpha1" } ] }, "io.k8s.api.coordination.v1alpha1.LeaseCandidateSpec": { "description": "LeaseCandidateSpec is a specification of a Lease.", "properties": { "binaryVersion": { "description": "BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required when strategy is \"OldestEmulationVersion\"", "type": "string" }, "emulationVersion": { "description": "EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is \"OldestEmulationVersion\"", "type": "string" }, "leaseName": { "description": "LeaseName is the name of the lease for which this candidate is contending. This field is immutable.", "type": "string" }, "pingTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime." }, "preferredStrategies": { "description": "PreferredStrategies indicates the list of strategies for picking the leader for coordinated leader election. The list is ordered, and the first strategy supersedes all other strategies. The list is used by coordinated leader election to make a decision about the final election strategy. This follows as - If all clients have strategy X as the first element in this list, strategy X will be used. - If a candidate has strategy [X] and another candidate has strategy [Y, X], Y supersedes X and strategy Y\n will be used.\n- If a candidate has strategy [X, Y] and another candidate has strategy [Y, X], this is a user error and leader\n election will not operate the Lease until resolved.\n(Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "renewTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates." } }, "required": [ "leaseName", "preferredStrategies" ], "type": "object" }, "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": { "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", "properties": { "fsType": { "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", "type": "string" }, "partition": { "description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).", "format": "int32", "type": "integer" }, "readOnly": { "description": "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", "type": "boolean" }, "volumeID": { "description": "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", "type": "string" } }, "required": [ "volumeID" ], "type": "object" }, "io.k8s.api.core.v1.Affinity": { "description": "Affinity is a group of affinity scheduling rules.", "properties": { "nodeAffinity": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity", "description": "Describes node affinity scheduling rules for the pod." }, "podAffinity": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity", "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))." }, "podAntiAffinity": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity", "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))." } }, "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": { "devicePath": { "description": "DevicePath represents the device path where the volume should be available", "type": "string" }, "name": { "description": "Name of the attached volume", "type": "string" } }, "required": [ "name", "devicePath" ], "type": "object" }, "io.k8s.api.core.v1.AzureDiskVolumeSource": { "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", "properties": { "cachingMode": { "description": "cachingMode is the Host Caching mode: None, Read Only, Read Write.", "type": "string" }, "diskName": { "description": "diskName is the Name of the data disk in the blob storage", "type": "string" }, "diskURI": { "description": "diskURI is the URI of data disk in the blob storage", "type": "string" }, "fsType": { "description": "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "kind": { "description": "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", "type": "string" }, "readOnly": { "description": "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" } }, "required": [ "diskName", "diskURI" ], "type": "object" }, "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", "properties": { "readOnly": { "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretName": { "description": "secretName is the name of secret that contains Azure Storage Account Name and Key", "type": "string" }, "secretNamespace": { "description": "secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", "type": "string" }, "shareName": { "description": "shareName is the azure Share Name", "type": "string" } }, "required": [ "secretName", "shareName" ], "type": "object" }, "io.k8s.api.core.v1.AzureFileVolumeSource": { "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", "properties": { "readOnly": { "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretName": { "description": "secretName is the name of secret that contains Azure Storage Account Name and Key", "type": "string" }, "shareName": { "description": "shareName is the azure share Name", "type": "string" } }, "required": [ "secretName", "shareName" ], "type": "object" }, "io.k8s.api.core.v1.Binding": { "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "target": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "The target object that you want to bind to the standard object." } }, "required": [ "target" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Binding", "version": "v1" } ] }, "io.k8s.api.core.v1.CSIPersistentVolumeSource": { "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", "properties": { "controllerExpandSecretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." }, "controllerPublishSecretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." }, "driver": { "description": "driver is the name of the driver to use for this volume. Required.", "type": "string" }, "fsType": { "description": "fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", "type": "string" }, "nodeExpandSecretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed." }, "nodePublishSecretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." }, "nodeStageSecretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed." }, "readOnly": { "description": "readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", "type": "boolean" }, "volumeAttributes": { "additionalProperties": { "type": "string" }, "description": "volumeAttributes of the volume to publish.", "type": "object" }, "volumeHandle": { "description": "volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.", "type": "string" } }, "required": [ "driver", "volumeHandle" ], "type": "object" }, "io.k8s.api.core.v1.CSIVolumeSource": { "description": "Represents a source location of a volume to mount, managed by an external CSI driver", "properties": { "driver": { "description": "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", "type": "string" }, "fsType": { "description": "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", "type": "string" }, "nodePublishSecretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed." }, "readOnly": { "description": "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).", "type": "boolean" }, "volumeAttributes": { "additionalProperties": { "type": "string" }, "description": "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", "type": "object" } }, "required": [ "driver" ], "type": "object" }, "io.k8s.api.core.v1.Capabilities": { "description": "Adds and removes POSIX capabilities from running containers.", "properties": { "add": { "description": "Added capabilities", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "drop": { "description": "Removed capabilities", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.CephFSPersistentVolumeSource": { "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", "properties": { "monitors": { "description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "items": { "type": "string" }, "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 /", "type": "string" }, "readOnly": { "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "type": "boolean" }, "secretFile": { "description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "type": "string" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" }, "user": { "description": "user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "type": "string" } }, "required": [ "monitors" ], "type": "object" }, "io.k8s.api.core.v1.CephFSVolumeSource": { "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", "properties": { "monitors": { "description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "items": { "type": "string" }, "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 /", "type": "string" }, "readOnly": { "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "type": "boolean" }, "secretFile": { "description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "type": "string" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" }, "user": { "description": "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", "type": "string" } }, "required": [ "monitors" ], "type": "object" }, "io.k8s.api.core.v1.CinderPersistentVolumeSource": { "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", "properties": { "fsType": { "description": "fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", "type": "string" }, "readOnly": { "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack." }, "volumeID": { "description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", "type": "string" } }, "required": [ "volumeID" ], "type": "object" }, "io.k8s.api.core.v1.CinderVolumeSource": { "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", "type": "string" }, "readOnly": { "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack." }, "volumeID": { "description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", "type": "string" } }, "required": [ "volumeID" ], "type": "object" }, "io.k8s.api.core.v1.ClientIPConfig": { "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", "properties": { "timeoutSeconds": { "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.core.v1.ClusterTrustBundleProjection": { "description": "ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.", "properties": { "labelSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \"match nothing\". If set but empty, interpreted as \"match everything\"." }, "name": { "description": "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.", "type": "string" }, "optional": { "description": "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.", "type": "boolean" }, "path": { "description": "Relative path from the volume root to write the bundle.", "type": "string" }, "signerName": { "description": "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.", "type": "string" } }, "required": [ "path" ], "type": "object" }, "io.k8s.api.core.v1.ComponentCondition": { "description": "Information about the condition of a component.", "properties": { "error": { "description": "Condition error code for a component. For example, a health check error code.", "type": "string" }, "message": { "description": "Message about the condition for a component. For example, information about a health check.", "type": "string" }, "status": { "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", "type": "string" }, "type": { "description": "Type of condition for a component. Valid value: \"Healthy\"", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.core.v1.ComponentStatus": { "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+", "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" }, "conditions": { "description": "List of component conditions observed", "items": { "$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" }, "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ComponentStatus", "version": "v1" } ] }, "io.k8s.api.core.v1.ComponentStatusList": { "description": "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+", "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 ComponentStatus objects.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ComponentStatusList", "version": "v1" } ] }, "io.k8s.api.core.v1.ConfigMap": { "description": "ConfigMap holds configuration data for pods to consume.", "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" }, "binaryData": { "additionalProperties": { "format": "byte", "type": "string" }, "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", "type": "object" }, "data": { "additionalProperties": { "type": "string" }, "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", "type": "object" }, "immutable": { "description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.", "type": "boolean" }, "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ConfigMap", "version": "v1" } ] }, "io.k8s.api.core.v1.ConfigMapEnvSource": { "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. 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": { "description": "Specify whether the ConfigMap must be defined", "type": "boolean" } }, "type": "object" }, "io.k8s.api.core.v1.ConfigMapKeySelector": { "description": "Selects a key from a ConfigMap.", "properties": { "key": { "description": "The key to select.", "type": "string" }, "name": { "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": { "description": "Specify whether the ConfigMap or its key must be defined", "type": "boolean" } }, "required": [ "key" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.ConfigMapList": { "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", "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 ConfigMaps.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" }, "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": "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": "", "kind": "ConfigMapList", "version": "v1" } ] }, "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration", "properties": { "kubeletConfigKey": { "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", "type": "string" }, "name": { "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", "type": "string" }, "namespace": { "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", "type": "string" }, "resourceVersion": { "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", "type": "string" }, "uid": { "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", "type": "string" } }, "required": [ "namespace", "name", "kubeletConfigKey" ], "type": "object" }, "io.k8s.api.core.v1.ConfigMapProjection": { "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", "properties": { "items": { "description": "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 '..'.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "name": { "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": { "description": "optional specify whether the ConfigMap or its keys must be defined", "type": "boolean" } }, "type": "object" }, "io.k8s.api.core.v1.ConfigMapVolumeSource": { "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", "properties": { "defaultMode": { "description": "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.", "format": "int32", "type": "integer" }, "items": { "description": "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 '..'.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "name": { "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": { "description": "optional specify whether the ConfigMap or its keys must be defined", "type": "boolean" } }, "type": "object" }, "io.k8s.api.core.v1.Container": { "description": "A single application container that you want to run within a pod.", "properties": { "args": { "description": "Arguments to the entrypoint. The container image's CMD 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", "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", "x-kubernetes-list-type": "atomic" }, "env": { "description": "List of environment variables to set in the container. Cannot be updated.", "items": { "$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" }, "envFrom": { "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" }, "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.", "type": "string" }, "imagePullPolicy": { "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", "type": "string" }, "lifecycle": { "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated." }, "livenessProbe": { "$ref": "#/definitions/io.k8s.api.core.v1.Probe", "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" }, "name": { "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", "type": "string" }, "ports": { "description": "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" }, "type": "array", "x-kubernetes-list-map-keys": [ "containerPort", "protocol" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "containerPort", "x-kubernetes-patch-strategy": "merge" }, "readinessProbe": { "$ref": "#/definitions/io.k8s.api.core.v1.Probe", "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" }, "resizePolicy": { "description": "Resources resize policy for the container.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerResizePolicy" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "resources": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/" }, "restartPolicy": { "description": "RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is \"Always\". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.", "type": "string" }, "securityContext": { "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", "description": "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" }, "startupProbe": { "$ref": "#/definitions/io.k8s.api.core.v1.Probe", "description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" }, "stdin": { "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", "type": "boolean" }, "stdinOnce": { "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", "type": "boolean" }, "terminationMessagePath": { "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", "type": "string" }, "terminationMessagePolicy": { "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", "type": "string" }, "tty": { "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", "type": "boolean" }, "volumeDevices": { "description": "volumeDevices is the list of block devices to be used by the container.", "items": { "$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" }, "volumeMounts": { "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", "items": { "$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" }, "workingDir": { "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.ContainerImage": { "description": "Describe a container image", "properties": { "names": { "description": "Names by which this image is known. e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "sizeBytes": { "description": "The size of the image in bytes.", "format": "int64", "type": "integer" } }, "type": "object" }, "io.k8s.api.core.v1.ContainerPort": { "description": "ContainerPort represents a network port in a single container.", "properties": { "containerPort": { "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.", "format": "int32", "type": "integer" }, "hostIP": { "description": "What host IP to bind the external port to.", "type": "string" }, "hostPort": { "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", "format": "int32", "type": "integer" }, "name": { "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", "type": "string" }, "protocol": { "description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", "type": "string" } }, "required": [ "containerPort" ], "type": "object" }, "io.k8s.api.core.v1.ContainerResizePolicy": { "description": "ContainerResizePolicy represents resource resize policy for the container.", "properties": { "resourceName": { "description": "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.", "type": "string" }, "restartPolicy": { "description": "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.", "type": "string" } }, "required": [ "resourceName", "restartPolicy" ], "type": "object" }, "io.k8s.api.core.v1.ContainerState": { "description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", "properties": { "running": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning", "description": "Details about a running container" }, "terminated": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated", "description": "Details about a terminated container" }, "waiting": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting", "description": "Details about a waiting container" } }, "type": "object" }, "io.k8s.api.core.v1.ContainerStateRunning": { "description": "ContainerStateRunning is a running state of a container.", "properties": { "startedAt": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Time at which the container was last (re-)started" } }, "type": "object" }, "io.k8s.api.core.v1.ContainerStateTerminated": { "description": "ContainerStateTerminated is a terminated state of a container.", "properties": { "containerID": { "description": "Container's ID in the format '://'", "type": "string" }, "exitCode": { "description": "Exit status from the last termination of the container", "format": "int32", "type": "integer" }, "finishedAt": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Time at which the container last terminated" }, "message": { "description": "Message regarding the last termination of the container", "type": "string" }, "reason": { "description": "(brief) reason from the last termination of the container", "type": "string" }, "signal": { "description": "Signal from the last termination of the container", "format": "int32", "type": "integer" }, "startedAt": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Time at which previous execution of the container started" } }, "required": [ "exitCode" ], "type": "object" }, "io.k8s.api.core.v1.ContainerStateWaiting": { "description": "ContainerStateWaiting is a waiting state of a container.", "properties": { "message": { "description": "Message regarding why the container is not yet running.", "type": "string" }, "reason": { "description": "(brief) reason the container is not yet running.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.ContainerStatus": { "description": "ContainerStatus contains details for the current status of this container.", "properties": { "allocatedResources": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.", "type": "object" }, "allocatedResourcesStatus": { "description": "AllocatedResourcesStatus represents the status of various resources allocated for this Pod.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceStatus" }, "type": "array", "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, "containerID": { "description": "ContainerID is the ID of the container in the format '://'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \"containerd\").", "type": "string" }, "image": { "description": "Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.", "type": "string" }, "imageID": { "description": "ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.", "type": "string" }, "lastState": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", "description": "LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0." }, "name": { "description": "Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.", "type": "string" }, "ready": { "description": "Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field).\n\nThe value is typically used to determine whether a container is ready to accept traffic.", "type": "boolean" }, "resources": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", "description": "Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized." }, "restartCount": { "description": "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.", "format": "int32", "type": "integer" }, "started": { "description": "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.", "type": "boolean" }, "state": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", "description": "State holds details about the container's current condition." }, "user": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerUser", "description": "User represents user identity information initially attached to the first process of the container" }, "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": [ "name", "ready", "restartCount", "image", "imageID" ], "type": "object" }, "io.k8s.api.core.v1.ContainerUser": { "description": "ContainerUser represents user identity information", "properties": { "linux": { "$ref": "#/definitions/io.k8s.api.core.v1.LinuxContainerUser", "description": "Linux holds user identity information initially attached to the first process of the containers in Linux. Note that the actual running identity can be changed if the process has enough privilege to do so." } }, "type": "object" }, "io.k8s.api.core.v1.DaemonEndpoint": { "description": "DaemonEndpoint contains information about a single Daemon endpoint.", "properties": { "Port": { "description": "Port number of the given endpoint.", "format": "int32", "type": "integer" } }, "required": [ "Port" ], "type": "object" }, "io.k8s.api.core.v1.DownwardAPIProjection": { "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", "properties": { "items": { "description": "Items is a list of DownwardAPIVolume file", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.DownwardAPIVolumeFile": { "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", "properties": { "fieldRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", "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.", "format": "int32", "type": "integer" }, "path": { "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", "type": "string" }, "resourceFieldRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported." } }, "required": [ "path" ], "type": "object" }, "io.k8s.api.core.v1.DownwardAPIVolumeSource": { "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", "properties": { "defaultMode": { "description": "Optional: mode bits to use on created files by default. Must be a 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.", "format": "int32", "type": "integer" }, "items": { "description": "Items is a list of downward API volume file", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.EmptyDirVolumeSource": { "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", "properties": { "medium": { "description": "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", "type": "string" }, "sizeLimit": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" } }, "type": "object" }, "io.k8s.api.core.v1.EndpointAddress": { "description": "EndpointAddress is a tuple that describes single IP address.", "properties": { "hostname": { "description": "The Hostname of this endpoint", "type": "string" }, "ip": { "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).", "type": "string" }, "nodeName": { "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", "type": "string" }, "targetRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "Reference to object providing the endpoint." } }, "required": [ "ip" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.EndpointPort": { "description": "EndpointPort is a tuple that describes a single port.", "properties": { "appProtocol": { "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.", "type": "string" }, "name": { "description": "The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.", "type": "string" }, "port": { "description": "The port number of the endpoint.", "format": "int32", "type": "integer" }, "protocol": { "description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", "type": "string" } }, "required": [ "port" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.EndpointSubset": { "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]", "properties": { "addresses": { "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" }, "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", "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", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.Endpoints": { "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n\n\t Name: \"mysvc\",\n\t Subsets: [\n\t {\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t },\n\t {\n\t Addresses: [{\"ip\": \"10.10.3.3\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n\t },\n\t]", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "subsets": { "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Endpoints", "version": "v1" } ] }, "io.k8s.api.core.v1.EndpointsList": { "description": "EndpointsList is a list of endpoints.", "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 endpoints.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "EndpointsList", "version": "v1" } ] }, "io.k8s.api.core.v1.EnvFromSource": { "description": "EnvFromSource represents the source of a set of ConfigMaps", "properties": { "configMapRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource", "description": "The ConfigMap to select from" }, "prefix": { "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", "type": "string" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource", "description": "The Secret to select from" } }, "type": "object" }, "io.k8s.api.core.v1.EnvVar": { "description": "EnvVar represents an environment variable present in a Container.", "properties": { "name": { "description": "Name of the environment variable. Must be a C_IDENTIFIER.", "type": "string" }, "value": { "description": "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. 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. Defaults to \"\".", "type": "string" }, "valueFrom": { "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource", "description": "Source for the environment variable's value. Cannot be used if value is not empty." } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.EnvVarSource": { "description": "EnvVarSource represents a source for the value of an EnvVar.", "properties": { "configMapKeyRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector", "description": "Selects a key of a ConfigMap." }, "fieldRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs." }, "resourceFieldRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector", "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported." }, "secretKeyRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector", "description": "Selects a key of a secret in the pod's namespace" } }, "type": "object" }, "io.k8s.api.core.v1.EphemeralContainer": { "description": "An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\n\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.", "properties": { "args": { "description": "Arguments to the entrypoint. The image's CMD 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", "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", "x-kubernetes-list-type": "atomic" }, "env": { "description": "List of environment variables to set in the container. Cannot be updated.", "items": { "$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" }, "envFrom": { "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "image": { "description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images", "type": "string" }, "imagePullPolicy": { "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", "type": "string" }, "lifecycle": { "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle", "description": "Lifecycle is not allowed for ephemeral containers." }, "livenessProbe": { "$ref": "#/definitions/io.k8s.api.core.v1.Probe", "description": "Probes are not allowed for ephemeral containers." }, "name": { "description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", "type": "string" }, "ports": { "description": "Ports are not allowed for ephemeral containers.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" }, "type": "array", "x-kubernetes-list-map-keys": [ "containerPort", "protocol" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "containerPort", "x-kubernetes-patch-strategy": "merge" }, "readinessProbe": { "$ref": "#/definitions/io.k8s.api.core.v1.Probe", "description": "Probes are not allowed for ephemeral containers." }, "resizePolicy": { "description": "Resources resize policy for the container.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerResizePolicy" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "resources": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements", "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod." }, "restartPolicy": { "description": "Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers.", "type": "string" }, "securityContext": { "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext", "description": "Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext." }, "startupProbe": { "$ref": "#/definitions/io.k8s.api.core.v1.Probe", "description": "Probes are not allowed for ephemeral containers." }, "stdin": { "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", "type": "boolean" }, "stdinOnce": { "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", "type": "boolean" }, "targetContainerName": { "description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.", "type": "string" }, "terminationMessagePath": { "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", "type": "string" }, "terminationMessagePolicy": { "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", "type": "string" }, "tty": { "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", "type": "boolean" }, "volumeDevices": { "description": "volumeDevices is the list of block devices to be used by the container.", "items": { "$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" }, "volumeMounts": { "description": "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.", "items": { "$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" }, "workingDir": { "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.EphemeralVolumeSource": { "description": "Represents an ephemeral volume that is handled by a normal storage driver.", "properties": { "volumeClaimTemplate": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate", "description": "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil." } }, "type": "object" }, "io.k8s.api.core.v1.Event": { "description": "Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", "properties": { "action": { "description": "What action was taken/failed regarding to the Regarding object.", "type": "string" }, "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" }, "count": { "description": "The number of times this event has occurred.", "format": "int32", "type": "integer" }, "eventTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "Time when this Event was first observed." }, "firstTimestamp": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)" }, "involvedObject": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "The object that this event is about." }, "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" }, "lastTimestamp": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "The time at which the most recent occurrence of this event was recorded." }, "message": { "description": "A human-readable description of the status of this operation.", "type": "string" }, "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "reason": { "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", "type": "string" }, "related": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "Optional secondary object for more complex actions." }, "reportingComponent": { "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", "type": "string" }, "reportingInstance": { "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", "type": "string" }, "series": { "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries", "description": "Data about the Event series this event represents or nil if it's a singleton Event." }, "source": { "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", "description": "The component reporting this event. Should be a short machine understandable string." }, "type": { "description": "Type of this event (Normal, Warning), new types could be added in the future", "type": "string" } }, "required": [ "metadata", "involvedObject" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Event", "version": "v1" } ] }, "io.k8s.api.core.v1.EventList": { "description": "EventList is a list of events.", "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 events", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "EventList", "version": "v1" } ] }, "io.k8s.api.core.v1.EventSeries": { "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", "properties": { "count": { "description": "Number of occurrences in this series up to the last heartbeat time", "format": "int32", "type": "integer" }, "lastObservedTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "Time of the last occurrence observed" } }, "type": "object" }, "io.k8s.api.core.v1.EventSource": { "description": "EventSource contains information for an event.", "properties": { "component": { "description": "Component from which the event is generated.", "type": "string" }, "host": { "description": "Node name on which the event is generated.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.ExecAction": { "description": "ExecAction describes a \"run in container\" action.", "properties": { "command": { "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.FCVolumeSource": { "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "lun": { "description": "lun is Optional: FC target lun number", "format": "int32", "type": "integer" }, "readOnly": { "description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "targetWWNs": { "description": "targetWWNs is Optional: FC target worldwide names (WWNs)", "items": { "type": "string" }, "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", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.FlexPersistentVolumeSource": { "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", "properties": { "driver": { "description": "driver is the name of the driver to use for this volume.", "type": "string" }, "fsType": { "description": "fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", "type": "string" }, "options": { "additionalProperties": { "type": "string" }, "description": "options is Optional: this field holds extra command options if any.", "type": "object" }, "readOnly": { "description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." } }, "required": [ "driver" ], "type": "object" }, "io.k8s.api.core.v1.FlexVolumeSource": { "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", "properties": { "driver": { "description": "driver is the name of the driver to use for this volume.", "type": "string" }, "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", "type": "string" }, "options": { "additionalProperties": { "type": "string" }, "description": "options is Optional: this field holds extra command options if any.", "type": "object" }, "readOnly": { "description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts." } }, "required": [ "driver" ], "type": "object" }, "io.k8s.api.core.v1.FlockerVolumeSource": { "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", "properties": { "datasetName": { "description": "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", "type": "string" }, "datasetUUID": { "description": "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": { "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", "properties": { "fsType": { "description": "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", "type": "string" }, "partition": { "description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", "format": "int32", "type": "integer" }, "pdName": { "description": "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", "type": "string" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", "type": "boolean" } }, "required": [ "pdName" ], "type": "object" }, "io.k8s.api.core.v1.GRPCAction": { "properties": { "port": { "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "format": "int32", "type": "integer" }, "service": { "description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\nIf this is not specified, the default behavior is defined by gRPC.", "type": "string" } }, "required": [ "port" ], "type": "object" }, "io.k8s.api.core.v1.GitRepoVolumeSource": { "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", "properties": { "directory": { "description": "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", "type": "string" }, "repository": { "description": "repository is the URL", "type": "string" }, "revision": { "description": "revision is the commit hash for the specified revision.", "type": "string" } }, "required": [ "repository" ], "type": "object" }, "io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": { "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", "properties": { "endpoints": { "description": "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", "type": "string" }, "endpointsNamespace": { "description": "endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", "type": "string" }, "path": { "description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", "type": "string" }, "readOnly": { "description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", "type": "boolean" } }, "required": [ "endpoints", "path" ], "type": "object" }, "io.k8s.api.core.v1.GlusterfsVolumeSource": { "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", "properties": { "endpoints": { "description": "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", "type": "string" }, "path": { "description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", "type": "string" }, "readOnly": { "description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", "type": "boolean" } }, "required": [ "endpoints", "path" ], "type": "object" }, "io.k8s.api.core.v1.HTTPGetAction": { "description": "HTTPGetAction describes an action based on HTTP Get requests.", "properties": { "host": { "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", "type": "string" }, "httpHeaders": { "description": "Custom headers to set in the request. HTTP allows repeated headers.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "path": { "description": "Path to access on the HTTP server.", "type": "string" }, "port": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." }, "scheme": { "description": "Scheme to use for connecting to the host. Defaults to HTTP.", "type": "string" } }, "required": [ "port" ], "type": "object" }, "io.k8s.api.core.v1.HTTPHeader": { "description": "HTTPHeader describes a custom header to be used in HTTP probes", "properties": { "name": { "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.", "type": "string" }, "value": { "description": "The header field value", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "io.k8s.api.core.v1.HostAlias": { "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", "properties": { "hostnames": { "description": "Hostnames for the above IP address.", "items": { "type": "string" }, "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": { "description": "HostIP represents a single IP address allocated to the host.", "properties": { "ip": { "description": "IP is the IP address assigned to the host", "type": "string" } }, "required": [ "ip" ], "type": "object" }, "io.k8s.api.core.v1.HostPathVolumeSource": { "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", "properties": { "path": { "description": "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", "type": "string" }, "type": { "description": "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", "type": "string" } }, "required": [ "path" ], "type": "object" }, "io.k8s.api.core.v1.ISCSIPersistentVolumeSource": { "description": "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", "properties": { "chapAuthDiscovery": { "description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", "type": "boolean" }, "chapAuthSession": { "description": "chapAuthSession defines whether support iSCSI Session CHAP authentication", "type": "boolean" }, "fsType": { "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", "type": "string" }, "initiatorName": { "description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", "type": "string" }, "iqn": { "description": "iqn is Target iSCSI Qualified Name.", "type": "string" }, "iscsiInterface": { "description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", "type": "string" }, "lun": { "description": "lun is iSCSI Target Lun number.", "format": "int32", "type": "integer" }, "portals": { "description": "portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication" }, "targetPortal": { "description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", "type": "string" } }, "required": [ "targetPortal", "iqn", "lun" ], "type": "object" }, "io.k8s.api.core.v1.ISCSIVolumeSource": { "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", "properties": { "chapAuthDiscovery": { "description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication", "type": "boolean" }, "chapAuthSession": { "description": "chapAuthSession defines whether support iSCSI Session CHAP authentication", "type": "boolean" }, "fsType": { "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", "type": "string" }, "initiatorName": { "description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", "type": "string" }, "iqn": { "description": "iqn is the target iSCSI Qualified Name.", "type": "string" }, "iscsiInterface": { "description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", "type": "string" }, "lun": { "description": "lun represents iSCSI Target Lun number.", "format": "int32", "type": "integer" }, "portals": { "description": "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication" }, "targetPortal": { "description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", "type": "string" } }, "required": [ "targetPortal", "iqn", "lun" ], "type": "object" }, "io.k8s.api.core.v1.ImageVolumeSource": { "description": "ImageVolumeSource represents a image volume resource.", "properties": { "pullPolicy": { "description": "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.", "type": "string" }, "reference": { "description": "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. 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.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.KeyToPath": { "description": "Maps a string key to a path within a volume.", "properties": { "key": { "description": "key is the key to project.", "type": "string" }, "mode": { "description": "mode is 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.", "format": "int32", "type": "integer" }, "path": { "description": "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", "type": "string" } }, "required": [ "key", "path" ], "type": "object" }, "io.k8s.api.core.v1.Lifecycle": { "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", "properties": { "postStart": { "$ref": "#/definitions/io.k8s.api.core.v1.LifecycleHandler", "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" }, "preStop": { "$ref": "#/definitions/io.k8s.api.core.v1.LifecycleHandler", "description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks" } }, "type": "object" }, "io.k8s.api.core.v1.LifecycleHandler": { "description": "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.", "properties": { "exec": { "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", "description": "Exec specifies the action to take." }, "httpGet": { "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", "description": "HTTPGet specifies the http request to perform." }, "sleep": { "$ref": "#/definitions/io.k8s.api.core.v1.SleepAction", "description": "Sleep represents the duration that the container should sleep before being terminated." }, "tcpSocket": { "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", "description": "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified." } }, "type": "object" }, "io.k8s.api.core.v1.LimitRange": { "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec", "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "LimitRange", "version": "v1" } ] }, "io.k8s.api.core.v1.LimitRangeItem": { "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", "properties": { "default": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Default resource requirement limit value by resource name if resource limit is omitted.", "type": "object" }, "defaultRequest": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", "type": "object" }, "max": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Max usage constraints on this kind by resource name.", "type": "object" }, "maxLimitRequestRatio": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", "type": "object" }, "min": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Min usage constraints on this kind by resource name.", "type": "object" }, "type": { "description": "Type of resource that this limit applies to.", "type": "string" } }, "required": [ "type" ], "type": "object" }, "io.k8s.api.core.v1.LimitRangeList": { "description": "LimitRangeList is a list of LimitRange items.", "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 a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "LimitRangeList", "version": "v1" } ] }, "io.k8s.api.core.v1.LimitRangeSpec": { "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", "properties": { "limits": { "description": "Limits is the list of LimitRangeItem objects that are enforced.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "limits" ], "type": "object" }, "io.k8s.api.core.v1.LinuxContainerUser": { "description": "LinuxContainerUser represents user identity information in Linux containers", "properties": { "gid": { "description": "GID is the primary gid initially attached to the first process in the container", "format": "int64", "type": "integer" }, "supplementalGroups": { "description": "SupplementalGroups are the supplemental groups initially attached to the first process in the container", "items": { "format": "int64", "type": "integer" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "uid": { "description": "UID is the primary uid initially attached to the first process in the container", "format": "int64", "type": "integer" } }, "required": [ "uid", "gid" ], "type": "object" }, "io.k8s.api.core.v1.LoadBalancerIngress": { "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", "properties": { "hostname": { "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", "type": "string" }, "ip": { "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", "type": "string" }, "ipMode": { "description": "IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to \"VIP\" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing.", "type": "string" }, "ports": { "description": "Ports is a list of records of service ports If used, every port defined in the service should have an entry in it", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PortStatus" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.LoadBalancerStatus": { "description": "LoadBalancerStatus represents the status of a load-balancer.", "properties": { "ingress": { "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.LocalObjectReference": { "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", "properties": { "name": { "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" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.LocalVolumeSource": { "description": "Local represents directly-attached storage with node affinity (Beta feature)", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.", "type": "string" }, "path": { "description": "path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", "type": "string" } }, "required": [ "path" ], "type": "object" }, "io.k8s.api.core.v1.ModifyVolumeStatus": { "description": "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation", "properties": { "status": { "description": "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.", "type": "string" }, "targetVolumeAttributesClassName": { "description": "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled", "type": "string" } }, "required": [ "status" ], "type": "object" }, "io.k8s.api.core.v1.NFSVolumeSource": { "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", "properties": { "path": { "description": "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", "type": "string" }, "readOnly": { "description": "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", "type": "boolean" }, "server": { "description": "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", "type": "string" } }, "required": [ "server", "path" ], "type": "object" }, "io.k8s.api.core.v1.Namespace": { "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec", "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus", "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Namespace", "version": "v1" } ] }, "io.k8s.api.core.v1.NamespaceCondition": { "description": "NamespaceCondition contains details about state of namespace.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "description": "Status of the condition, one of True, False, Unknown.", "type": "string" }, "type": { "description": "Type of namespace controller condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.core.v1.NamespaceList": { "description": "NamespaceList is a list of Namespaces.", "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 Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "NamespaceList", "version": "v1" } ] }, "io.k8s.api.core.v1.NamespaceSpec": { "description": "NamespaceSpec describes the attributes on a Namespace.", "properties": { "finalizers": { "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.NamespaceStatus": { "description": "NamespaceStatus is information about the current status of a Namespace.", "properties": { "conditions": { "description": "Represents the latest available observations of a namespace's current state.", "items": { "$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" }, "phase": { "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.Node": { "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec", "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus", "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Node", "version": "v1" } ] }, "io.k8s.api.core.v1.NodeAddress": { "description": "NodeAddress contains information for the node's address.", "properties": { "address": { "description": "The node address.", "type": "string" }, "type": { "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", "type": "string" } }, "required": [ "type", "address" ], "type": "object" }, "io.k8s.api.core.v1.NodeAffinity": { "description": "Node affinity is a group of node affinity scheduling rules.", "properties": { "preferredDuringSchedulingIgnoredDuringExecution": { "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "requiredDuringSchedulingIgnoredDuringExecution": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", "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 an update), the system may or may not try to eventually evict the pod from its node." } }, "type": "object" }, "io.k8s.api.core.v1.NodeCondition": { "description": "NodeCondition contains condition information for a node.", "properties": { "lastHeartbeatTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time we got an update on a given condition." }, "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transit from one status to another." }, "message": { "description": "Human readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "(brief) 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 node condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.core.v1.NodeConfigSource": { "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22", "properties": { "configMap": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource", "description": "ConfigMap is a reference to a Node's ConfigMap" } }, "type": "object" }, "io.k8s.api.core.v1.NodeConfigStatus": { "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", "properties": { "active": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error." }, "assigned": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned." }, "error": { "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", "type": "string" }, "lastKnownGood": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future." } }, "type": "object" }, "io.k8s.api.core.v1.NodeDaemonEndpoints": { "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", "properties": { "kubeletEndpoint": { "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint", "description": "Endpoint on which Kubelet is listening." } }, "type": "object" }, "io.k8s.api.core.v1.NodeFeatures": { "description": "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.", "properties": { "supplementalGroupsPolicy": { "description": "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.", "type": "boolean" } }, "type": "object" }, "io.k8s.api.core.v1.NodeList": { "description": "NodeList is the whole list of all Nodes which have been registered with master.", "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 nodes", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "NodeList", "version": "v1" } ] }, "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 features implemented by the runtime handler.", "properties": { "recursiveReadOnlyMounts": { "description": "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.", "type": "boolean" }, "userNamespaces": { "description": "UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.", "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": { "nodeSelectorTerms": { "description": "Required. A list of node selector terms. The terms are ORed.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "nodeSelectorTerms" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.NodeSelectorRequirement": { "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "properties": { "key": { "description": "The label key that the selector applies to.", "type": "string" }, "operator": { "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", "type": "string" }, "values": { "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "key", "operator" ], "type": "object" }, "io.k8s.api.core.v1.NodeSelectorTerm": { "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", "properties": { "matchExpressions": { "description": "A list of node selector requirements by node's labels.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" }, "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", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.NodeSpec": { "description": "NodeSpec describes the attributes that a node is created with.", "properties": { "configSource": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource", "description": "Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed." }, "externalID": { "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", "type": "string" }, "podCIDR": { "description": "PodCIDR represents the pod IP range assigned to the node.", "type": "string" }, "podCIDRs": { "description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set", "x-kubernetes-patch-strategy": "merge" }, "providerID": { "description": "ID of the node assigned by the cloud provider in the format: ://", "type": "string" }, "taints": { "description": "If specified, the node's taints.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Taint" }, "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", "type": "boolean" } }, "type": "object" }, "io.k8s.api.core.v1.NodeStatus": { "description": "NodeStatus is information about the current status of a node.", "properties": { "addresses": { "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).", "items": { "$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" }, "allocatable": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", "type": "object" }, "capacity": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity", "type": "object" }, "conditions": { "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", "items": { "$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" }, "config": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus", "description": "Status of the config assigned to the node via the dynamic Kubelet config feature." }, "daemonEndpoints": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints", "description": "Endpoints of daemons running on the Node." }, "features": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeFeatures", "description": "Features describes the set of features implemented by the CRI implementation." }, "images": { "description": "List of container images on this node", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "nodeInfo": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info" }, "phase": { "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", "x-kubernetes-list-type": "atomic" }, "volumesInUse": { "description": "List of attachable volumes in use (mounted) by the node.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.NodeSystemInfo": { "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", "properties": { "architecture": { "description": "The Architecture reported by the node", "type": "string" }, "bootID": { "description": "Boot ID reported by the node.", "type": "string" }, "containerRuntimeVersion": { "description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).", "type": "string" }, "kernelVersion": { "description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).", "type": "string" }, "kubeProxyVersion": { "description": "Deprecated: KubeProxy Version reported by the node.", "type": "string" }, "kubeletVersion": { "description": "Kubelet Version reported by the node.", "type": "string" }, "machineID": { "description": "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html", "type": "string" }, "operatingSystem": { "description": "The Operating System reported by the node", "type": "string" }, "osImage": { "description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).", "type": "string" }, "systemUUID": { "description": "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid", "type": "string" } }, "required": [ "machineID", "systemUUID", "bootID", "kernelVersion", "osImage", "containerRuntimeVersion", "kubeletVersion", "kubeProxyVersion", "operatingSystem", "architecture" ], "type": "object" }, "io.k8s.api.core.v1.ObjectFieldSelector": { "description": "ObjectFieldSelector selects an APIVersioned field of an object.", "properties": { "apiVersion": { "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", "type": "string" }, "fieldPath": { "description": "Path of the field to select in the specified API version.", "type": "string" } }, "required": [ "fieldPath" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.ObjectReference": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "fieldPath": { "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", "type": "string" }, "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "namespace": { "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", "type": "string" }, "resourceVersion": { "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.PersistentVolume": { "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", "description": "spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus", "description": "status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "PersistentVolume", "version": "v1" } ] }, "io.k8s.api.core.v1.PersistentVolumeClaim": { "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", "description": "spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus", "description": "status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } ] }, "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { "description": "PersistentVolumeClaimCondition contains details about state of pvc", "properties": { "lastProbeTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastProbeTime is the time we probed the condition." }, "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastTransitionTime is the time the condition transitioned from one status to another." }, "message": { "description": "message is the human-readable message indicating details about last transition.", "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 \"Resizing\" that means the underlying persistent volume is being resized.", "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.core.v1.PersistentVolumeClaimList": { "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", "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 a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "PersistentVolumeClaimList", "version": "v1" } ] }, "io.k8s.api.core.v1.PersistentVolumeClaimSpec": { "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", "properties": { "accessModes": { "description": "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "dataSource": { "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", "description": "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource." }, "dataSourceRef": { "$ref": "#/definitions/io.k8s.api.core.v1.TypedObjectReference", "description": "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\n allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n preserves all values, and generates an error if a disallowed value is\n specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled." }, "resources": { "$ref": "#/definitions/io.k8s.api.core.v1.VolumeResourceRequirements", "description": "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "selector is a label query over volumes to consider for binding." }, "storageClassName": { "description": "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", "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/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).", "type": "string" }, "volumeMode": { "description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", "type": "string" }, "volumeName": { "description": "volumeName is the binding reference to the PersistentVolume backing this claim.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", "properties": { "accessModes": { "description": "accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "allocatedResourceStatuses": { "additionalProperties": { "type": "string" }, "description": "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA 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.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", "type": "object", "x-kubernetes-map-type": "granular" }, "allocatedResources": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nCapacity 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.\n\nA 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.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", "type": "object" }, "capacity": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "capacity represents the actual resources of the underlying volume.", "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 '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" }, "currentVolumeAttributesClassName": { "description": "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default).", "type": "string" }, "modifyVolumeStatus": { "$ref": "#/definitions/io.k8s.api.core.v1.ModifyVolumeStatus", "description": "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default)." }, "phase": { "description": "phase represents the current phase of PersistentVolumeClaim.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.PersistentVolumeClaimTemplate": { "description": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.", "properties": { "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation." }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec", "description": "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here." } }, "required": [ "spec" ], "type": "object" }, "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", "properties": { "claimName": { "description": "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", "type": "string" }, "readOnly": { "description": "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.", "type": "boolean" } }, "required": [ "claimName" ], "type": "object" }, "io.k8s.api.core.v1.PersistentVolumeList": { "description": "PersistentVolumeList is a list of PersistentVolume items.", "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 a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "PersistentVolumeList", "version": "v1" } ] }, "io.k8s.api.core.v1.PersistentVolumeSpec": { "description": "PersistentVolumeSpec is the specification of a persistent volume.", "properties": { "accessModes": { "description": "accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "awsElasticBlockStore": { "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", "description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" }, "azureDisk": { "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", "description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." }, "azureFile": { "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource", "description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod." }, "capacity": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", "type": "object" }, "cephfs": { "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource", "description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" }, "cinder": { "$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource", "description": "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" }, "claimRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding", "x-kubernetes-map-type": "granular" }, "csi": { "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource", "description": "csi represents storage that is handled by an external CSI driver (Beta feature)." }, "fc": { "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", "description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." }, "flexVolume": { "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource", "description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." }, "flocker": { "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", "description": "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running" }, "gcePersistentDisk": { "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", "description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" }, "glusterfs": { "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource", "description": "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md" }, "hostPath": { "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", "description": "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" }, "iscsi": { "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource", "description": "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin." }, "local": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource", "description": "local represents directly-attached storage with node affinity" }, "mountOptions": { "description": "mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "nfs": { "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", "description": "nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" }, "nodeAffinity": { "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity", "description": "nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume." }, "persistentVolumeReclaimPolicy": { "description": "persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", "type": "string" }, "photonPersistentDisk": { "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", "description": "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" }, "portworxVolume": { "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", "description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" }, "quobyte": { "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", "description": "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" }, "rbd": { "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource", "description": "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" }, "scaleIO": { "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource", "description": "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." }, "storageClassName": { "description": "storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", "type": "string" }, "storageos": { "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource", "description": "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md" }, "volumeAttributesClassName": { "description": "Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default).", "type": "string" }, "volumeMode": { "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", "type": "string" }, "vsphereVolume": { "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", "description": "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" } }, "type": "object" }, "io.k8s.api.core.v1.PersistentVolumeStatus": { "description": "PersistentVolumeStatus is the current status of a persistent volume.", "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." }, "message": { "description": "message is a human-readable message indicating details about why the volume is in this state.", "type": "string" }, "phase": { "description": "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", "type": "string" }, "reason": { "description": "reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { "description": "Represents a Photon Controller persistent disk resource.", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "pdID": { "description": "pdID is the ID that identifies Photon Controller persistent disk", "type": "string" } }, "required": [ "pdID" ], "type": "object" }, "io.k8s.api.core.v1.Pod": { "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus", "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Pod", "version": "v1" } ] }, "io.k8s.api.core.v1.PodAffinity": { "description": "Pod affinity is a group of inter pod affinity scheduling rules.", "properties": { "preferredDuringSchedulingIgnoredDuringExecution": { "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" }, "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", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.PodAffinityTerm": { "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running", "properties": { "labelSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", "items": { "type": "string" }, "type": "array", "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 a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "namespaceSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces." }, "namespaces": { "description": "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\".", "items": { "type": "string" }, "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.", "type": "string" } }, "required": [ "topologyKey" ], "type": "object" }, "io.k8s.api.core.v1.PodAntiAffinity": { "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", "properties": { "preferredDuringSchedulingIgnoredDuringExecution": { "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" }, "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", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.PodCondition": { "description": "PodCondition contains details for the current condition of this pod.", "properties": { "lastProbeTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time we probed the condition." }, "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transitioned from one status to another." }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", "type": "string" }, "type": { "description": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.core.v1.PodDNSConfig": { "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", "properties": { "nameservers": { "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", "items": { "type": "string" }, "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", "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", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.PodDNSConfigOption": { "description": "PodDNSConfigOption defines DNS resolver options of a pod.", "properties": { "name": { "description": "Required.", "type": "string" }, "value": { "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.PodIP": { "description": "PodIP represents a single IP address allocated to the pod.", "properties": { "ip": { "description": "IP is the IP address assigned to the pod", "type": "string" } }, "required": [ "ip" ], "type": "object" }, "io.k8s.api.core.v1.PodList": { "description": "PodList is a list of Pods.", "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 pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "PodList", "version": "v1" } ] }, "io.k8s.api.core.v1.PodOS": { "description": "PodOS defines the OS parameters of a pod.", "properties": { "name": { "description": "Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.PodReadinessGate": { "description": "PodReadinessGate contains the reference to a pod condition", "properties": { "conditionType": { "description": "ConditionType refers to a condition in the pod's condition list with matching type.", "type": "string" } }, "required": [ "conditionType" ], "type": "object" }, "io.k8s.api.core.v1.PodResourceClaim": { "description": "PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod.\n\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.", "properties": { "name": { "description": "Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.", "type": "string" }, "resourceClaimName": { "description": "ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.", "type": "string" }, "resourceClaimTemplateName": { "description": "ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\n\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\n\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.PodResourceClaimStatus": { "description": "PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.", "properties": { "name": { "description": "Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.", "type": "string" }, "resourceClaimName": { "description": "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.PodSchedulingGate": { "description": "PodSchedulingGate is associated to a Pod to guard its scheduling.", "properties": { "name": { "description": "Name of the scheduling gate. Each scheduling gate must have a unique name field.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "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", "type": "integer" }, "fsGroupChangePolicy": { "description": "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.", "type": "string" }, "runAsGroup": { "description": "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.", "format": "int64", "type": "integer" }, "runAsNonRoot": { "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "type": "boolean" }, "runAsUser": { "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. 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.", "format": "int64", "type": "integer" }, "seLinuxOptions": { "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. 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." }, "seccompProfile": { "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", "description": "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows." }, "supplementalGroups": { "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.", "items": { "format": "int64", "type": "integer" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "supplementalGroupsPolicy": { "description": "Defines how supplemental groups of the first container processes are calculated. Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.", "type": "string" }, "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", "x-kubernetes-list-type": "atomic" }, "windowsOptions": { "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", "description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux." } }, "type": "object" }, "io.k8s.api.core.v1.PodSpec": { "description": "PodSpec is a description of a pod.", "properties": { "activeDeadlineSeconds": { "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", "format": "int64", "type": "integer" }, "affinity": { "$ref": "#/definitions/io.k8s.api.core.v1.Affinity", "description": "If specified, the pod's scheduling constraints" }, "automountServiceAccountToken": { "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", "type": "boolean" }, "containers": { "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", "items": { "$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" }, "dnsConfig": { "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig", "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy." }, "dnsPolicy": { "description": "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'.", "type": "string" }, "enableServiceLinks": { "description": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", "type": "boolean" }, "ephemeralContainers": { "description": "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.", "items": { "$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.", "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" }, "hostIPC": { "description": "Use the host's ipc namespace. Optional: Default to false.", "type": "boolean" }, "hostNetwork": { "description": "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.", "type": "boolean" }, "hostPID": { "description": "Use the host's pid namespace. Optional: Default to false.", "type": "boolean" }, "hostUsers": { "description": "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.", "type": "boolean" }, "hostname": { "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", "type": "string" }, "imagePullSecrets": { "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", "items": { "$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" }, "initContainers": { "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", "items": { "$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" }, "nodeName": { "description": "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename", "type": "string" }, "nodeSelector": { "additionalProperties": { "type": "string" }, "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", "type": "object", "x-kubernetes-map-type": "atomic" }, "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.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.securityContext.supplementalGroupsPolicy - 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": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md", "type": "object" }, "preemptionPolicy": { "description": "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.", "type": "string" }, "priority": { "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", "format": "int32", "type": "integer" }, "priorityClassName": { "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", "type": "string" }, "readinessGates": { "description": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" }, "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.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaim" }, "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" }, "restartPolicy": { "description": "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", "type": "string" }, "runtimeClassName": { "description": "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", "type": "string" }, "schedulerName": { "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", "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.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodSchedulingGate" }, "type": "array", "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, "securityContext": { "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext", "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 deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", "type": "string" }, "serviceAccountName": { "description": "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/", "type": "string" }, "setHostnameAsFQDN": { "description": "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.", "type": "boolean" }, "shareProcessNamespace": { "description": "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.", "type": "boolean" }, "subdomain": { "description": "If specified, the fully qualified Pod hostname will be \"...svc.\". If not specified, the pod will not have a domainname at all.", "type": "string" }, "terminationGracePeriodSeconds": { "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.", "format": "int64", "type": "integer" }, "tolerations": { "description": "If specified, the pod's tolerations.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" }, "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.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint" }, "type": "array", "x-kubernetes-list-map-keys": [ "topologyKey", "whenUnsatisfiable" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "topologyKey", "x-kubernetes-patch-strategy": "merge" }, "volumes": { "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", "items": { "$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" } }, "required": [ "containers" ], "type": "object" }, "io.k8s.api.core.v1.PodStatus": { "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", "properties": { "conditions": { "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", "items": { "$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" }, "containerStatuses": { "description": "The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" }, "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", "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", "type": "string" }, "hostIPs": { "description": "hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is 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 means that HostIPs will not be updated even if there is a node is assigned to this pod.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.HostIP" }, "type": "array", "x-kubernetes-list-type": "atomic", "x-kubernetes-patch-merge-key": "ip", "x-kubernetes-patch-strategy": "merge" }, "initContainerStatuses": { "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "message": { "description": "A human readable message indicating details about why the pod is in this condition.", "type": "string" }, "nominatedNodeName": { "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", "type": "string" }, "phase": { "description": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", "type": "string" }, "podIP": { "description": "podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", "type": "string" }, "podIPs": { "description": "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", "items": { "$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" }, "qosClass": { "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes", "type": "string" }, "reason": { "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", "type": "string" }, "resize": { "description": "Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\"", "type": "string" }, "resourceClaimStatuses": { "description": "Status of resource claims.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodResourceClaimStatus" }, "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" }, "startTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod." } }, "type": "object" }, "io.k8s.api.core.v1.PodTemplate": { "description": "PodTemplate describes a template for creating copies of a predefined pod.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "template": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "PodTemplate", "version": "v1" } ] }, "io.k8s.api.core.v1.PodTemplateList": { "description": "PodTemplateList is a list of PodTemplates.", "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 pod templates", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "PodTemplateList", "version": "v1" } ] }, "io.k8s.api.core.v1.PodTemplateSpec": { "description": "PodTemplateSpec describes the data a pod should have when created from a template", "properties": { "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec", "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object" }, "io.k8s.api.core.v1.PortStatus": { "properties": { "error": { "description": "Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\n CamelCase names\n- cloud provider specific error values must have names that comply with the\n format foo.example.com/CamelCase.", "type": "string" }, "port": { "description": "Port is the port number of the service port of which status is recorded here", "format": "int32", "type": "integer" }, "protocol": { "description": "Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"", "type": "string" } }, "required": [ "port", "protocol" ], "type": "object" }, "io.k8s.api.core.v1.PortworxVolumeSource": { "description": "PortworxVolumeSource represents a Portworx volume resource.", "properties": { "fsType": { "description": "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "readOnly": { "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "volumeID": { "description": "volumeID uniquely identifies a Portworx volume", "type": "string" } }, "required": [ "volumeID" ], "type": "object" }, "io.k8s.api.core.v1.PreferredSchedulingTerm": { "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", "properties": { "preference": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm", "description": "A node selector term, associated with the corresponding weight." }, "weight": { "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", "format": "int32", "type": "integer" } }, "required": [ "weight", "preference" ], "type": "object" }, "io.k8s.api.core.v1.Probe": { "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", "properties": { "exec": { "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction", "description": "Exec specifies the action to take." }, "failureThreshold": { "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", "format": "int32", "type": "integer" }, "grpc": { "$ref": "#/definitions/io.k8s.api.core.v1.GRPCAction", "description": "GRPC specifies an action involving a GRPC port." }, "httpGet": { "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction", "description": "HTTPGet specifies the http request to perform." }, "initialDelaySeconds": { "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "format": "int32", "type": "integer" }, "periodSeconds": { "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", "format": "int32", "type": "integer" }, "successThreshold": { "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", "format": "int32", "type": "integer" }, "tcpSocket": { "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction", "description": "TCPSocket specifies an action involving a TCP port." }, "terminationGracePeriodSeconds": { "description": "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.", "format": "int64", "type": "integer" }, "timeoutSeconds": { "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.core.v1.ProjectedVolumeSource": { "description": "Represents a projected volume source", "properties": { "defaultMode": { "description": "defaultMode are the 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. 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.", "format": "int32", "type": "integer" }, "sources": { "description": "sources is the list of volume projections. Each entry in this list handles one source.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.QuobyteVolumeSource": { "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", "properties": { "group": { "description": "group to map volume access to Default is no group", "type": "string" }, "readOnly": { "description": "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", "type": "boolean" }, "registry": { "description": "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", "type": "string" }, "tenant": { "description": "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", "type": "string" }, "user": { "description": "user to map volume access to Defaults to serivceaccount user", "type": "string" }, "volume": { "description": "volume is a string that references an already created Quobyte volume by name.", "type": "string" } }, "required": [ "registry", "volume" ], "type": "object" }, "io.k8s.api.core.v1.RBDPersistentVolumeSource": { "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "properties": { "fsType": { "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", "type": "string" }, "image": { "description": "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "string" }, "keyring": { "description": "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "string" }, "monitors": { "description": "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "items": { "type": "string" }, "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", "type": "string" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" }, "user": { "description": "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "string" } }, "required": [ "monitors", "image" ], "type": "object" }, "io.k8s.api.core.v1.RBDVolumeSource": { "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", "properties": { "fsType": { "description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", "type": "string" }, "image": { "description": "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "string" }, "keyring": { "description": "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "string" }, "monitors": { "description": "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "items": { "type": "string" }, "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", "type": "string" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" }, "user": { "description": "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", "type": "string" } }, "required": [ "monitors", "image" ], "type": "object" }, "io.k8s.api.core.v1.ReplicationController": { "description": "ReplicationController represents the configuration of a replication controller.", "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": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec", "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus", "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ReplicationController", "version": "v1" } ] }, "io.k8s.api.core.v1.ReplicationControllerCondition": { "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "The last time the condition transitioned from one status to another." }, "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 replication controller condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.api.core.v1.ReplicationControllerList": { "description": "ReplicationControllerList is a collection of replication controllers.", "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 replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ReplicationControllerList", "version": "v1" } ] }, "io.k8s.api.core.v1.ReplicationControllerSpec": { "description": "ReplicationControllerSpec is the specification of a replication controller.", "properties": { "minReadySeconds": { "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", "format": "int32", "type": "integer" }, "replicas": { "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", "format": "int32", "type": "integer" }, "selector": { "additionalProperties": { "type": "string" }, "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", "type": "object", "x-kubernetes-map-type": "atomic" }, "template": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec", "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. The only allowed template.spec.restartPolicy value is \"Always\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template" } }, "type": "object" }, "io.k8s.api.core.v1.ReplicationControllerStatus": { "description": "ReplicationControllerStatus represents the current status of a replication controller.", "properties": { "availableReplicas": { "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", "format": "int32", "type": "integer" }, "conditions": { "description": "Represents the latest available observations of a replication controller's current state.", "items": { "$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" }, "fullyLabeledReplicas": { "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", "format": "int32", "type": "integer" }, "observedGeneration": { "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", "format": "int64", "type": "integer" }, "readyReplicas": { "description": "The number of ready replicas for this replication controller.", "format": "int32", "type": "integer" }, "replicas": { "description": "Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", "format": "int32", "type": "integer" } }, "required": [ "replicas" ], "type": "object" }, "io.k8s.api.core.v1.ResourceClaim": { "description": "ResourceClaim references one entry in PodSpec.ResourceClaims.", "properties": { "name": { "description": "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.", "type": "string" }, "request": { "description": "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.ResourceFieldSelector": { "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", "properties": { "containerName": { "description": "Container name: required for volumes, optional for env vars", "type": "string" }, "divisor": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "Specifies the output format of the exposed resources, defaults to \"1\"" }, "resource": { "description": "Required: resource to select", "type": "string" } }, "required": [ "resource" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.ResourceHealth": { "description": "ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP.", "properties": { "health": { "description": "Health of the resource. can be one of:\n - Healthy: operates as normal\n - Unhealthy: reported unhealthy. We consider this a temporary health issue\n since we do not have a mechanism today to distinguish\n temporary and permanent issues.\n - Unknown: The status cannot be determined.\n For example, Device Plugin got unregistered and hasn't been re-registered since.\n\nIn future we may want to introduce the PermanentlyUnhealthy Status.", "type": "string" }, "resourceID": { "description": "ResourceID is the unique identifier of the resource. See the ResourceID type for more information.", "type": "string" } }, "required": [ "resourceID" ], "type": "object" }, "io.k8s.api.core.v1.ResourceQuota": { "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec", "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus", "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ResourceQuota", "version": "v1" } ] }, "io.k8s.api.core.v1.ResourceQuotaList": { "description": "ResourceQuotaList is a list of ResourceQuota items.", "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 a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ResourceQuotaList", "version": "v1" } ] }, "io.k8s.api.core.v1.ResourceQuotaSpec": { "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", "properties": { "hard": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "type": "object" }, "scopeSelector": { "$ref": "#/definitions/io.k8s.api.core.v1.ScopeSelector", "description": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched." }, "scopes": { "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.core.v1.ResourceQuotaStatus": { "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", "properties": { "hard": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", "type": "object" }, "used": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Used is the current observed total usage of the resource in the namespace.", "type": "object" } }, "type": "object" }, "io.k8s.api.core.v1.ResourceRequirements": { "description": "ResourceRequirements describes the compute resource requirements.", "properties": { "claims": { "description": "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceClaim" }, "type": "array", "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" }, "limits": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "type": "object" }, "requests": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "type": "object" } }, "type": "object" }, "io.k8s.api.core.v1.ResourceStatus": { "properties": { "name": { "description": "Name of the resource. Must be unique within the pod and match one of the resources from the pod spec.", "type": "string" }, "resources": { "description": "List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceHealth" }, "type": "array", "x-kubernetes-list-map-keys": [ "resourceID" ], "x-kubernetes-list-type": "map" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.SELinuxOptions": { "description": "SELinuxOptions are the labels to be applied to the container", "properties": { "level": { "description": "Level is SELinux level label that applies to the container.", "type": "string" }, "role": { "description": "Role is a SELinux role label that applies to the container.", "type": "string" }, "type": { "description": "Type is a SELinux type label that applies to the container.", "type": "string" }, "user": { "description": "User is a SELinux user label that applies to the container.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"", "type": "string" }, "gateway": { "description": "gateway is the host address of the ScaleIO API Gateway.", "type": "string" }, "protectionDomain": { "description": "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", "type": "string" }, "readOnly": { "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference", "description": "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." }, "sslEnabled": { "description": "sslEnabled is the flag to enable/disable SSL communication with Gateway, default false", "type": "boolean" }, "storageMode": { "description": "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", "type": "string" }, "storagePool": { "description": "storagePool is the ScaleIO Storage Pool associated with the protection domain.", "type": "string" }, "system": { "description": "system is the name of the storage system as configured in ScaleIO.", "type": "string" }, "volumeName": { "description": "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", "type": "string" } }, "required": [ "gateway", "system", "secretRef" ], "type": "object" }, "io.k8s.api.core.v1.ScaleIOVolumeSource": { "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".", "type": "string" }, "gateway": { "description": "gateway is the host address of the ScaleIO API Gateway.", "type": "string" }, "protectionDomain": { "description": "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.", "type": "string" }, "readOnly": { "description": "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail." }, "sslEnabled": { "description": "sslEnabled Flag enable/disable SSL communication with Gateway, default false", "type": "boolean" }, "storageMode": { "description": "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", "type": "string" }, "storagePool": { "description": "storagePool is the ScaleIO Storage Pool associated with the protection domain.", "type": "string" }, "system": { "description": "system is the name of the storage system as configured in ScaleIO.", "type": "string" }, "volumeName": { "description": "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.", "type": "string" } }, "required": [ "gateway", "system", "secretRef" ], "type": "object" }, "io.k8s.api.core.v1.ScopeSelector": { "description": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", "properties": { "matchExpressions": { "description": "A list of scope selector requirements by scope of the resources.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.ScopedResourceSelectorRequirement": { "description": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", "properties": { "operator": { "description": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", "type": "string" }, "scopeName": { "description": "The name of the scope that the selector applies to.", "type": "string" }, "values": { "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "scopeName", "operator" ], "type": "object" }, "io.k8s.api.core.v1.SeccompProfile": { "description": "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.", "properties": { "localhostProfile": { "description": "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \"Localhost\". Must NOT be set for any other type.", "type": "string" }, "type": { "description": "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", "type": "string" } }, "required": [ "type" ], "type": "object", "x-kubernetes-unions": [ { "discriminator": "type", "fields-to-discriminateBy": { "localhostProfile": "LocalhostProfile" } } ] }, "io.k8s.api.core.v1.Secret": { "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", "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" }, "data": { "additionalProperties": { "format": "byte", "type": "string" }, "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", "type": "object" }, "immutable": { "description": "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.", "type": "boolean" }, "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "stringData": { "additionalProperties": { "type": "string" }, "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.", "type": "object" }, "type": { "description": "Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types", "type": "string" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Secret", "version": "v1" } ] }, "io.k8s.api.core.v1.SecretEnvSource": { "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. 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": { "description": "Specify whether the Secret must be defined", "type": "boolean" } }, "type": "object" }, "io.k8s.api.core.v1.SecretKeySelector": { "description": "SecretKeySelector selects a key of a Secret.", "properties": { "key": { "description": "The key of the secret to select from. Must be a valid secret key.", "type": "string" }, "name": { "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": { "description": "Specify whether the Secret or its key must be defined", "type": "boolean" } }, "required": [ "key" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.SecretList": { "description": "SecretList is a list of Secret.", "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 a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "SecretList", "version": "v1" } ] }, "io.k8s.api.core.v1.SecretProjection": { "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", "properties": { "items": { "description": "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 '..'.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "name": { "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": { "description": "optional field specify whether the Secret or its key must be defined", "type": "boolean" } }, "type": "object" }, "io.k8s.api.core.v1.SecretReference": { "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", "properties": { "name": { "description": "name is unique within a namespace to reference a secret resource.", "type": "string" }, "namespace": { "description": "namespace defines the space within which the secret name must be unique.", "type": "string" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.SecretVolumeSource": { "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", "properties": { "defaultMode": { "description": "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.", "format": "int32", "type": "integer" }, "items": { "description": "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 '..'.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "optional": { "description": "optional field specify whether the Secret or its keys must be defined", "type": "boolean" }, "secretName": { "description": "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.SecurityContext": { "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", "properties": { "allowPrivilegeEscalation": { "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." }, "privileged": { "description": "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.", "type": "boolean" }, "procMount": { "description": "procMount denotes the type of proc mount to use for the containers. The default value is Default 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.", "type": "string" }, "readOnlyRootFilesystem": { "description": "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.", "type": "boolean" }, "runAsGroup": { "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", "format": "int64", "type": "integer" }, "runAsNonRoot": { "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "type": "boolean" }, "runAsUser": { "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.", "format": "int64", "type": "integer" }, "seLinuxOptions": { "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows." }, "seccompProfile": { "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", "description": "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows." }, "windowsOptions": { "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux." } }, "type": "object" }, "io.k8s.api.core.v1.Service": { "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec", "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus", "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Service", "version": "v1" } ] }, "io.k8s.api.core.v1.ServiceAccount": { "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", "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" }, "automountServiceAccountToken": { "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", "type": "boolean" }, "imagePullSecrets": { "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" }, "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", "type": "string" }, "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "secrets": { "description": "Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret", "items": { "$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" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ServiceAccount", "version": "v1" } ] }, "io.k8s.api.core.v1.ServiceAccountList": { "description": "ServiceAccountList is a list of ServiceAccount objects", "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 ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ServiceAccountList", "version": "v1" } ] }, "io.k8s.api.core.v1.ServiceAccountTokenProjection": { "description": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).", "properties": { "audience": { "description": "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", "type": "string" }, "expirationSeconds": { "description": "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", "format": "int64", "type": "integer" }, "path": { "description": "path is the path relative to the mount point of the file to project the token into.", "type": "string" } }, "required": [ "path" ], "type": "object" }, "io.k8s.api.core.v1.ServiceList": { "description": "ServiceList holds a list of services.", "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 services", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" }, "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" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "ServiceList", "version": "v1" } ] }, "io.k8s.api.core.v1.ServicePort": { "description": "ServicePort contains information on service's port.", "properties": { "appProtocol": { "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.", "type": "string" }, "name": { "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", "type": "string" }, "nodePort": { "description": "The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", "format": "int32", "type": "integer" }, "port": { "description": "The port that will be exposed by this service.", "format": "int32", "type": "integer" }, "protocol": { "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", "type": "string" }, "targetPort": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service" } }, "required": [ "port" ], "type": "object" }, "io.k8s.api.core.v1.ServiceSpec": { "description": "ServiceSpec describes the attributes that a user creates on a service.", "properties": { "allocateLoadBalancerNodePorts": { "description": "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.", "type": "boolean" }, "clusterIP": { "description": "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", "type": "string" }, "clusterIPs": { "description": "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "externalIPs": { "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", "items": { "type": "string" }, "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\".", "type": "string" }, "externalTrafficPolicy": { "description": "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.", "type": "string" }, "healthCheckNodePort": { "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.", "format": "int32", "type": "integer" }, "internalTrafficPolicy": { "description": "InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).", "type": "string" }, "ipFamilies": { "description": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "ipFamilyPolicy": { "description": "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", "type": "string" }, "loadBalancerClass": { "description": "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.", "type": "string" }, "loadBalancerIP": { "description": "Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.", "type": "string" }, "loadBalancerSourceRanges": { "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/", "items": { "type": "string" }, "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", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" }, "type": "array", "x-kubernetes-list-map-keys": [ "port", "protocol" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "port", "x-kubernetes-patch-strategy": "merge" }, "publishNotReadyAddresses": { "description": "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", "type": "boolean" }, "selector": { "additionalProperties": { "type": "string" }, "description": "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/", "type": "object", "x-kubernetes-map-type": "atomic" }, "sessionAffinity": { "description": "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", "type": "string" }, "sessionAffinityConfig": { "$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" } }, "type": "object" }, "io.k8s.api.core.v1.ServiceStatus": { "description": "ServiceStatus represents the current status of a service.", "properties": { "conditions": { "description": "Current service 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", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, "loadBalancer": { "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus", "description": "LoadBalancer contains the current status of the load-balancer, if one is present." } }, "type": "object" }, "io.k8s.api.core.v1.SessionAffinityConfig": { "description": "SessionAffinityConfig represents the configurations of session affinity.", "properties": { "clientIP": { "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig", "description": "clientIP contains the configurations of Client IP based session affinity." } }, "type": "object" }, "io.k8s.api.core.v1.SleepAction": { "description": "SleepAction describes a \"sleep\" action.", "properties": { "seconds": { "description": "Seconds is the number of seconds to sleep.", "format": "int64", "type": "integer" } }, "required": [ "seconds" ], "type": "object" }, "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { "description": "Represents a StorageOS persistent volume resource.", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "readOnly": { "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." }, "volumeName": { "description": "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", "type": "string" }, "volumeNamespace": { "description": "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.StorageOSVolumeSource": { "description": "Represents a StorageOS persistent volume resource.", "properties": { "fsType": { "description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "readOnly": { "description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", "type": "boolean" }, "secretRef": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference", "description": "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted." }, "volumeName": { "description": "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", "type": "string" }, "volumeNamespace": { "description": "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.Sysctl": { "description": "Sysctl defines a kernel parameter to be set", "properties": { "name": { "description": "Name of a property to set", "type": "string" }, "value": { "description": "Value of a property to set", "type": "string" } }, "required": [ "name", "value" ], "type": "object" }, "io.k8s.api.core.v1.TCPSocketAction": { "description": "TCPSocketAction describes an action based on opening a socket", "properties": { "host": { "description": "Optional: Host name to connect to, defaults to the pod IP.", "type": "string" }, "port": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME." } }, "required": [ "port" ], "type": "object" }, "io.k8s.api.core.v1.Taint": { "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", "properties": { "effect": { "description": "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.", "type": "string" }, "key": { "description": "Required. The taint key to be applied to a node.", "type": "string" }, "timeAdded": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints." }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } }, "required": [ "key", "effect" ], "type": "object" }, "io.k8s.api.core.v1.Toleration": { "description": "The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator .", "properties": { "effect": { "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", "type": "string" }, "key": { "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", "type": "string" }, "operator": { "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", "type": "string" }, "tolerationSeconds": { "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", "format": "int64", "type": "integer" }, "value": { "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", "type": "string" } }, "type": "object" }, "io.k8s.api.core.v1.TopologySelectorLabelRequirement": { "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", "properties": { "key": { "description": "The label key that the selector applies to.", "type": "string" }, "values": { "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "key", "values" ], "type": "object" }, "io.k8s.api.core.v1.TopologySelectorTerm": { "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", "properties": { "matchLabelExpressions": { "description": "A list of topology selector requirements by labels.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.TopologySpreadConstraint": { "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", "properties": { "labelSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain." }, "matchLabelKeys": { "description": "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.\n\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "maxSkew": { "description": "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.", "format": "int32", "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.", "format": "int32", "type": "integer" }, "nodeAffinityPolicy": { "description": "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.\n\nIf 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.", "type": "string" }, "nodeTaintsPolicy": { "description": "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.\n\nIf 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.", "type": "string" }, "topologyKey": { "description": "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 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.", "type": "string" }, "whenUnsatisfiable": { "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", "type": "string" } }, "required": [ "maxSkew", "topologyKey", "whenUnsatisfiable" ], "type": "object" }, "io.k8s.api.core.v1.TypedLocalObjectReference": { "description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", "properties": { "apiGroup": { "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", "type": "string" }, "kind": { "description": "Kind is the type of resource being referenced", "type": "string" }, "name": { "description": "Name is the name of resource being referenced", "type": "string" } }, "required": [ "kind", "name" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.core.v1.TypedObjectReference": { "properties": { "apiGroup": { "description": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", "type": "string" }, "kind": { "description": "Kind is the type of resource being referenced", "type": "string" }, "name": { "description": "Name is the name of resource being referenced", "type": "string" }, "namespace": { "description": "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.", "type": "string" } }, "required": [ "kind", "name" ], "type": "object" }, "io.k8s.api.core.v1.Volume": { "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", "properties": { "awsElasticBlockStore": { "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", "description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" }, "azureDisk": { "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource", "description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." }, "azureFile": { "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource", "description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod." }, "cephfs": { "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource", "description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime" }, "cinder": { "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource", "description": "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md" }, "configMap": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource", "description": "configMap represents a configMap that should populate this volume" }, "csi": { "$ref": "#/definitions/io.k8s.api.core.v1.CSIVolumeSource", "description": "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature)." }, "downwardAPI": { "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource", "description": "downwardAPI represents downward API about the pod that should populate this volume" }, "emptyDir": { "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource", "description": "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir" }, "ephemeral": { "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource", "description": "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time." }, "fc": { "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource", "description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod." }, "flexVolume": { "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource", "description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin." }, "flocker": { "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource", "description": "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running" }, "gcePersistentDisk": { "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource", "description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" }, "gitRepo": { "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource", "description": "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container." }, "glusterfs": { "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource", "description": "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md" }, "hostPath": { "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource", "description": "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" }, "image": { "$ref": "#/definitions/io.k8s.api.core.v1.ImageVolumeSource", "description": "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type." }, "iscsi": { "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource", "description": "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md" }, "name": { "description": "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "nfs": { "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", "description": "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" }, "persistentVolumeClaim": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource", "description": "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" }, "photonPersistentDisk": { "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource", "description": "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" }, "portworxVolume": { "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource", "description": "portworxVolume represents a portworx volume attached and mounted on kubelets host machine" }, "projected": { "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource", "description": "projected items for all in one resources secrets, configmaps, and downward API" }, "quobyte": { "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource", "description": "quobyte represents a Quobyte mount on the host that shares a pod's lifetime" }, "rbd": { "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource", "description": "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md" }, "scaleIO": { "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource", "description": "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes." }, "secret": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource", "description": "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" }, "storageos": { "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource", "description": "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes." }, "vsphereVolume": { "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource", "description": "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.core.v1.VolumeDevice": { "description": "volumeDevice describes a mapping of a raw block device within a container.", "properties": { "devicePath": { "description": "devicePath is the path inside of the container that the device will be mapped to.", "type": "string" }, "name": { "description": "name must match the name of a persistentVolumeClaim in the pod", "type": "string" } }, "required": [ "name", "devicePath" ], "type": "object" }, "io.k8s.api.core.v1.VolumeMount": { "description": "VolumeMount describes a mounting of a Volume within a container.", "properties": { "mountPath": { "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", "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. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", "type": "string" }, "name": { "description": "This must match the Name of a Volume.", "type": "string" }, "readOnly": { "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" }, "subPathExpr": { "description": "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.", "type": "string" } }, "required": [ "name", "mountPath" ], "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": { "required": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", "description": "required specifies hard node constraints that must be met." } }, "type": "object" }, "io.k8s.api.core.v1.VolumeProjection": { "description": "Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.", "properties": { "clusterTrustBundle": { "$ref": "#/definitions/io.k8s.api.core.v1.ClusterTrustBundleProjection", "description": "ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file.\n\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\n\nClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.\n\nKubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time." }, "configMap": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection", "description": "configMap information about the configMap data to project" }, "downwardAPI": { "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection", "description": "downwardAPI information about the downwardAPI data to project" }, "secret": { "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection", "description": "secret information about the secret data to project" }, "serviceAccountToken": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection", "description": "serviceAccountToken is information about the serviceAccountToken data to project" } }, "type": "object" }, "io.k8s.api.core.v1.VolumeResourceRequirements": { "description": "VolumeResourceRequirements describes the storage resource requirements for a volume.", "properties": { "limits": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "type": "object" }, "requests": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "type": "object" } }, "type": "object" }, "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { "description": "Represents a vSphere volume resource.", "properties": { "fsType": { "description": "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "storagePolicyID": { "description": "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", "type": "string" }, "storagePolicyName": { "description": "storagePolicyName is the storage Policy Based Management (SPBM) profile name.", "type": "string" }, "volumePath": { "description": "volumePath is the path that identifies vSphere volume vmdk", "type": "string" } }, "required": [ "volumePath" ], "type": "object" }, "io.k8s.api.core.v1.WeightedPodAffinityTerm": { "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", "properties": { "podAffinityTerm": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm", "description": "Required. A pod affinity term, associated with the corresponding weight." }, "weight": { "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", "format": "int32", "type": "integer" } }, "required": [ "weight", "podAffinityTerm" ], "type": "object" }, "io.k8s.api.core.v1.WindowsSecurityContextOptions": { "description": "WindowsSecurityContextOptions contain Windows-specific options and credentials.", "properties": { "gmsaCredentialSpec": { "description": "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", "type": "string" }, "gmsaCredentialSpecName": { "description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.", "type": "string" }, "hostProcess": { "description": "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.", "type": "boolean" }, "runAsUserName": { "description": "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "type": "string" } }, "type": "object" }, "io.k8s.api.discovery.v1.Endpoint": { "description": "Endpoint represents a single logical \"backend\" implementing a service.", "properties": { "addresses": { "description": "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100. These are all assumed to be fungible and clients may choose to only use the first element. Refer to: https://issue.k8s.io/106267", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "conditions": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointConditions", "description": "conditions contains information about the current status of the endpoint." }, "deprecatedTopology": { "additionalProperties": { "type": "string" }, "description": "deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24). While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead.", "type": "object" }, "hints": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointHints", "description": "hints contains information associated with how an endpoint should be consumed." }, "hostname": { "description": "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.", "type": "string" }, "nodeName": { "description": "nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.", "type": "string" }, "targetRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "targetRef is a reference to a Kubernetes object that represents this endpoint." }, "zone": { "description": "zone is the name of the Zone this endpoint exists in.", "type": "string" } }, "required": [ "addresses" ], "type": "object" }, "io.k8s.api.discovery.v1.EndpointConditions": { "description": "EndpointConditions represents the current condition of an endpoint.", "properties": { "ready": { "description": "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \"true\" for terminating endpoints, except when the normal readiness behavior is being explicitly overridden, for example when the associated Service has set the publishNotReadyAddresses flag.", "type": "boolean" }, "serving": { "description": "serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition.", "type": "boolean" }, "terminating": { "description": "terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating.", "type": "boolean" } }, "type": "object" }, "io.k8s.api.discovery.v1.EndpointHints": { "description": "EndpointHints provides hints describing how an endpoint should be consumed.", "properties": { "forZones": { "description": "forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing.", "items": { "$ref": "#/definitions/io.k8s.api.discovery.v1.ForZone" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.discovery.v1.EndpointPort": { "description": "EndpointPort represents a Port used by an EndpointSlice", "properties": { "appProtocol": { "description": "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.", "type": "string" }, "name": { "description": "name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", "type": "string" }, "port": { "description": "port represents the port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", "format": "int32", "type": "integer" }, "protocol": { "description": "protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", "type": "string" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.discovery.v1.EndpointSlice": { "description": "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", "properties": { "addressType": { "description": "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", "type": "string" }, "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" }, "endpoints": { "description": "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", "items": { "$ref": "#/definitions/io.k8s.api.discovery.v1.Endpoint" }, "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", "type": "string" }, "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "Standard object's metadata." }, "ports": { "description": "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", "items": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointPort" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "addressType", "endpoints" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } ] }, "io.k8s.api.discovery.v1.EndpointSliceList": { "description": "EndpointSliceList represents a list of endpoint slices", "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 endpoint slices", "items": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" }, "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": "discovery.k8s.io", "kind": "EndpointSliceList", "version": "v1" } ] }, "io.k8s.api.discovery.v1.ForZone": { "description": "ForZone provides information about which zones should consume this endpoint.", "properties": { "name": { "description": "name represents the name of the zone.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.events.v1.Event": { "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.", "properties": { "action": { "description": "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field cannot be empty for new Events and it can have at most 128 characters.", "type": "string" }, "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" }, "deprecatedCount": { "description": "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", "format": "int32", "type": "integer" }, "deprecatedFirstTimestamp": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." }, "deprecatedLastTimestamp": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type." }, "deprecatedSource": { "$ref": "#/definitions/io.k8s.api.core.v1.EventSource", "description": "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type." }, "eventTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "eventTime is the time when this Event was first observed. It is required." }, "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "note": { "description": "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", "type": "string" }, "reason": { "description": "reason is why the action was taken. It is human-readable. This field cannot be empty for new Events and it can have at most 128 characters.", "type": "string" }, "regarding": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object." }, "related": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference", "description": "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object." }, "reportingController": { "description": "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", "type": "string" }, "reportingInstance": { "description": "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", "type": "string" }, "series": { "$ref": "#/definitions/io.k8s.api.events.v1.EventSeries", "description": "series is data about the Event series this event represents or nil if it's a singleton Event." }, "type": { "description": "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable. This field cannot be empty for new Events.", "type": "string" } }, "required": [ "eventTime" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "events.k8s.io", "kind": "Event", "version": "v1" } ] }, "io.k8s.api.events.v1.EventList": { "description": "EventList is a list of Event objects.", "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 a list of schema objects.", "items": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "events.k8s.io", "kind": "EventList", "version": "v1" } ] }, "io.k8s.api.events.v1.EventSeries": { "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.", "properties": { "count": { "description": "count is the number of occurrences in this series up to the last heartbeat time.", "format": "int32", "type": "integer" }, "lastObservedTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime", "description": "lastObservedTime is the time when last Event from the series was seen before last heartbeat." } }, "required": [ "count", "lastObservedTime" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.ExemptPriorityLevelConfiguration": { "description": "ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.", "properties": { "lendablePercent": { "description": "`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )", "format": "int32", "type": "integer" }, "nominalConcurrencyShares": { "description": "`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values:\n\nNominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\n\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1.FlowDistinguisherMethod": { "description": "FlowDistinguisherMethod specifies the method of a flow distinguisher.", "properties": { "type": { "description": "`type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.", "type": "string" } }, "required": [ "type" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.FlowSchema": { "description": "FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".", "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": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchemaSpec", "description": "`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchemaStatus", "description": "`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } ] }, "io.k8s.api.flowcontrol.v1.FlowSchemaCondition": { "description": "FlowSchemaCondition describes conditions for a FlowSchema.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." }, "message": { "description": "`message` is a human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", "type": "string" }, "type": { "description": "`type` is the type of the condition. Required.", "type": "string" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1.FlowSchemaList": { "description": "FlowSchemaList is a list of FlowSchema objects.", "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 a list of FlowSchemas.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" }, "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": "`metadata` is the 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": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchemaList", "version": "v1" } ] }, "io.k8s.api.flowcontrol.v1.FlowSchemaSpec": { "description": "FlowSchemaSpec describes how the FlowSchema's specification looks like.", "properties": { "distinguisherMethod": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowDistinguisherMethod", "description": "`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string." }, "matchingPrecedence": { "description": "`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.", "format": "int32", "type": "integer" }, "priorityLevelConfiguration": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationReference", "description": "`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required." }, "rules": { "description": "`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PolicyRulesWithSubjects" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "priorityLevelConfiguration" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.FlowSchemaStatus": { "description": "FlowSchemaStatus represents the current state of a FlowSchema.", "properties": { "conditions": { "description": "`conditions` is a list of the current states of FlowSchema.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchemaCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1.GroupSubject": { "description": "GroupSubject holds detailed information for group-kind subject.", "properties": { "name": { "description": "name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.LimitResponse": { "description": "LimitResponse defines how to handle requests that can not be executed right now.", "properties": { "queuing": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.QueuingConfiguration", "description": "`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\"Queue\"`." }, "type": { "description": "`type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.", "type": "string" } }, "required": [ "type" ], "type": "object", "x-kubernetes-unions": [ { "discriminator": "type", "fields-to-discriminateBy": { "queuing": "Queuing" } } ] }, "io.k8s.api.flowcontrol.v1.LimitedPriorityLevelConfiguration": { "description": "LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\n - How are requests for this priority level limited?\n - What should be done with requests that exceed the limit?", "properties": { "borrowingLimitPercent": { "description": "`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\n\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.", "format": "int32", "type": "integer" }, "lendablePercent": { "description": "`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )", "format": "int32", "type": "integer" }, "limitResponse": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.LimitResponse", "description": "`limitResponse` indicates what to do with requests that can not be executed right now" }, "nominalConcurrencyShares": { "description": "`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values:\n\nNominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\n\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level.\n\nIf not specified, this field defaults to a value of 30.\n\nSetting this field to zero supports the construction of a \"jail\" for this priority level that is used to hold some request(s)", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1.NonResourcePolicyRule": { "description": "NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.", "properties": { "nonResourceURLs": { "description": "`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\n - \"/healthz\" is legal\n - \"/hea*\" is illegal\n - \"/hea\" is legal but matches nothing\n - \"/hea/*\" also matches nothing\n - \"/healthz/*\" matches all per-component health checks.\n\"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "verbs": { "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" } }, "required": [ "verbs", "nonResourceURLs" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.PolicyRulesWithSubjects": { "description": "PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.", "properties": { "nonResourceRules": { "description": "`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.NonResourcePolicyRule" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "resourceRules": { "description": "`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.ResourcePolicyRule" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "subjects": { "description": "subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.Subject" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "subjects" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration": { "description": "PriorityLevelConfiguration represents the configuration of a priority level.", "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": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationSpec", "description": "`spec` is the specification of the desired behavior of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationStatus", "description": "`status` is the current status of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } ] }, "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationCondition": { "description": "PriorityLevelConfigurationCondition defines the condition of priority level.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." }, "message": { "description": "`message` is a human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", "type": "string" }, "type": { "description": "`type` is the type of the condition. Required.", "type": "string" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationList": { "description": "PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.", "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 a list of request-priorities.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" }, "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": "`metadata` is the standard object's 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": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfigurationList", "version": "v1" } ] }, "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationReference": { "description": "PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.", "properties": { "name": { "description": "`name` is the name of the priority level configuration being referenced Required.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationSpec": { "description": "PriorityLevelConfigurationSpec specifies the configuration of a priority level.", "properties": { "exempt": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.ExemptPriorityLevelConfiguration", "description": "`exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `\"Limited\"`. This field MAY be non-empty if `type` is `\"Exempt\"`. If empty and `type` is `\"Exempt\"` then the default values for `ExemptPriorityLevelConfiguration` apply." }, "limited": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.LimitedPriorityLevelConfiguration", "description": "`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\"Limited\"`." }, "type": { "description": "`type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.", "type": "string" } }, "required": [ "type" ], "type": "object", "x-kubernetes-unions": [ { "discriminator": "type", "fields-to-discriminateBy": { "exempt": "Exempt", "limited": "Limited" } } ] }, "io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationStatus": { "description": "PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".", "properties": { "conditions": { "description": "`conditions` is the current state of \"request-priority\".", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1.QueuingConfiguration": { "description": "QueuingConfiguration holds the configuration parameters for queuing", "properties": { "handSize": { "description": "`handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.", "format": "int32", "type": "integer" }, "queueLengthLimit": { "description": "`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.", "format": "int32", "type": "integer" }, "queues": { "description": "`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1.ResourcePolicyRule": { "description": "ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.", "properties": { "apiGroups": { "description": "`apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "clusterScope": { "description": "`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.", "type": "boolean" }, "namespaces": { "description": "`namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \"*\". Note that \"*\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "resources": { "description": "`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "verbs": { "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" } }, "required": [ "verbs", "apiGroups", "resources" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.ServiceAccountSubject": { "description": "ServiceAccountSubject holds detailed information for service-account-kind subject.", "properties": { "name": { "description": "`name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.", "type": "string" }, "namespace": { "description": "`namespace` is the namespace of matching ServiceAccount objects. Required.", "type": "string" } }, "required": [ "namespace", "name" ], "type": "object" }, "io.k8s.api.flowcontrol.v1.Subject": { "description": "Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.", "properties": { "group": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.GroupSubject", "description": "`group` matches based on user group name." }, "kind": { "description": "`kind` indicates which one of the other fields is non-empty. Required", "type": "string" }, "serviceAccount": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.ServiceAccountSubject", "description": "`serviceAccount` matches ServiceAccounts." }, "user": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.UserSubject", "description": "`user` matches based on username." } }, "required": [ "kind" ], "type": "object", "x-kubernetes-unions": [ { "discriminator": "kind", "fields-to-discriminateBy": { "group": "Group", "serviceAccount": "ServiceAccount", "user": "User" } } ] }, "io.k8s.api.flowcontrol.v1.UserSubject": { "description": "UserSubject holds detailed information for user-kind subject.", "properties": { "name": { "description": "`name` is the username that matches, or \"*\" to match all usernames. Required.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.ExemptPriorityLevelConfiguration": { "description": "ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.", "properties": { "lendablePercent": { "description": "`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )", "format": "int32", "type": "integer" }, "nominalConcurrencyShares": { "description": "`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values:\n\nNominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\n\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod": { "description": "FlowDistinguisherMethod specifies the method of a flow distinguisher.", "properties": { "type": { "description": "`type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.", "type": "string" } }, "required": [ "type" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.FlowSchema": { "description": "FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".", "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": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec", "description": "`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus", "description": "`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } ] }, "io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition": { "description": "FlowSchemaCondition describes conditions for a FlowSchema.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." }, "message": { "description": "`message` is a human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", "type": "string" }, "type": { "description": "`type` is the type of the condition. Required.", "type": "string" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.FlowSchemaList": { "description": "FlowSchemaList is a list of FlowSchema objects.", "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 a list of FlowSchemas.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" }, "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": "`metadata` is the 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": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchemaList", "version": "v1beta3" } ] }, "io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec": { "description": "FlowSchemaSpec describes how the FlowSchema's specification looks like.", "properties": { "distinguisherMethod": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod", "description": "`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string." }, "matchingPrecedence": { "description": "`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.", "format": "int32", "type": "integer" }, "priorityLevelConfiguration": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference", "description": "`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required." }, "rules": { "description": "`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "priorityLevelConfiguration" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus": { "description": "FlowSchemaStatus represents the current state of a FlowSchema.", "properties": { "conditions": { "description": "`conditions` is a list of the current states of FlowSchema.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.GroupSubject": { "description": "GroupSubject holds detailed information for group-kind subject.", "properties": { "name": { "description": "name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.LimitResponse": { "description": "LimitResponse defines how to handle requests that can not be executed right now.", "properties": { "queuing": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration", "description": "`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\"Queue\"`." }, "type": { "description": "`type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.", "type": "string" } }, "required": [ "type" ], "type": "object", "x-kubernetes-unions": [ { "discriminator": "type", "fields-to-discriminateBy": { "queuing": "Queuing" } } ] }, "io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration": { "description": "LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\n - How are requests for this priority level limited?\n - What should be done with requests that exceed the limit?", "properties": { "borrowingLimitPercent": { "description": "`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\n\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.", "format": "int32", "type": "integer" }, "lendablePercent": { "description": "`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )", "format": "int32", "type": "integer" }, "limitResponse": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.LimitResponse", "description": "`limitResponse` indicates what to do with requests that can not be executed right now" }, "nominalConcurrencyShares": { "description": "`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values:\n\nNominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\n\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule": { "description": "NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.", "properties": { "nonResourceURLs": { "description": "`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\n - \"/healthz\" is legal\n - \"/hea*\" is illegal\n - \"/hea\" is legal but matches nothing\n - \"/hea/*\" also matches nothing\n - \"/healthz/*\" matches all per-component health checks.\n\"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "verbs": { "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" } }, "required": [ "verbs", "nonResourceURLs" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects": { "description": "PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.", "properties": { "nonResourceRules": { "description": "`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "resourceRules": { "description": "`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "subjects": { "description": "subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.Subject" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "subjects" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration": { "description": "PriorityLevelConfiguration represents the configuration of a priority level.", "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": "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec", "description": "`spec` is the specification of the desired behavior of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus", "description": "`status` is the current status of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } ] }, "io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition": { "description": "PriorityLevelConfigurationCondition defines the condition of priority level.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "`lastTransitionTime` is the last time the condition transitioned from one status to another." }, "message": { "description": "`message` is a human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "description": "`status` is the status of the condition. Can be True, False, Unknown. Required.", "type": "string" }, "type": { "description": "`type` is the type of the condition. Required.", "type": "string" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationList": { "description": "PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.", "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 a list of request-priorities.", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" }, "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": "`metadata` is the standard object's 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": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfigurationList", "version": "v1beta3" } ] }, "io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference": { "description": "PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.", "properties": { "name": { "description": "`name` is the name of the priority level configuration being referenced Required.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec": { "description": "PriorityLevelConfigurationSpec specifies the configuration of a priority level.", "properties": { "exempt": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.ExemptPriorityLevelConfiguration", "description": "`exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `\"Limited\"`. This field MAY be non-empty if `type` is `\"Exempt\"`. If empty and `type` is `\"Exempt\"` then the default values for `ExemptPriorityLevelConfiguration` apply." }, "limited": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration", "description": "`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\"Limited\"`." }, "type": { "description": "`type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.", "type": "string" } }, "required": [ "type" ], "type": "object", "x-kubernetes-unions": [ { "discriminator": "type", "fields-to-discriminateBy": { "exempt": "Exempt", "limited": "Limited" } } ] }, "io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus": { "description": "PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".", "properties": { "conditions": { "description": "`conditions` is the current state of \"request-priority\".", "items": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration": { "description": "QueuingConfiguration holds the configuration parameters for queuing", "properties": { "handSize": { "description": "`handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.", "format": "int32", "type": "integer" }, "queueLengthLimit": { "description": "`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.", "format": "int32", "type": "integer" }, "queues": { "description": "`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule": { "description": "ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.", "properties": { "apiGroups": { "description": "`apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "clusterScope": { "description": "`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.", "type": "boolean" }, "namespaces": { "description": "`namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \"*\". Note that \"*\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "resources": { "description": "`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" }, "verbs": { "description": "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" } }, "required": [ "verbs", "apiGroups", "resources" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject": { "description": "ServiceAccountSubject holds detailed information for service-account-kind subject.", "properties": { "name": { "description": "`name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.", "type": "string" }, "namespace": { "description": "`namespace` is the namespace of matching ServiceAccount objects. Required.", "type": "string" } }, "required": [ "namespace", "name" ], "type": "object" }, "io.k8s.api.flowcontrol.v1beta3.Subject": { "description": "Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.", "properties": { "group": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.GroupSubject", "description": "`group` matches based on user group name." }, "kind": { "description": "`kind` indicates which one of the other fields is non-empty. Required", "type": "string" }, "serviceAccount": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject", "description": "`serviceAccount` matches ServiceAccounts." }, "user": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.UserSubject", "description": "`user` matches based on username." } }, "required": [ "kind" ], "type": "object", "x-kubernetes-unions": [ { "discriminator": "kind", "fields-to-discriminateBy": { "group": "Group", "serviceAccount": "ServiceAccount", "user": "User" } } ] }, "io.k8s.api.flowcontrol.v1beta3.UserSubject": { "description": "UserSubject holds detailed information for user-kind subject.", "properties": { "name": { "description": "`name` is the username that matches, or \"*\" to match all usernames. Required.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.networking.v1.HTTPIngressPath": { "description": "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", "properties": { "backend": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", "description": "backend defines the referenced service endpoint to which the traffic will be forwarded to." }, "path": { "description": "path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \"Exact\" or \"Prefix\".", "type": "string" }, "pathType": { "description": "pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types.", "type": "string" } }, "required": [ "pathType", "backend" ], "type": "object" }, "io.k8s.api.networking.v1.HTTPIngressRuleValue": { "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", "properties": { "paths": { "description": "paths is a collection of paths that map requests to backends.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.HTTPIngressPath" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "paths" ], "type": "object" }, "io.k8s.api.networking.v1.IPBlock": { "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", "properties": { "cidr": { "description": "cidr is a string representing the IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"", "type": "string" }, "except": { "description": "except is a slice of CIDRs that should not be included within an IPBlock Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\" Except values will be rejected if they are outside the cidr range", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "cidr" ], "type": "object" }, "io.k8s.api.networking.v1.Ingress": { "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressSpec", "description": "spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressStatus", "description": "status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } ] }, "io.k8s.api.networking.v1.IngressBackend": { "description": "IngressBackend describes all endpoints for a given service and port.", "properties": { "resource": { "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", "description": "resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with \"Service\"." }, "service": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressServiceBackend", "description": "service references a service as a backend. This is a mutually exclusive setting with \"Resource\"." } }, "type": "object" }, "io.k8s.api.networking.v1.IngressClass": { "description": "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassSpec", "description": "spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } ] }, "io.k8s.api.networking.v1.IngressClassList": { "description": "IngressClassList is a collection of IngressClasses.", "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 IngressClasses.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" }, "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": "networking.k8s.io", "kind": "IngressClassList", "version": "v1" } ] }, "io.k8s.api.networking.v1.IngressClassParametersReference": { "description": "IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.", "properties": { "apiGroup": { "description": "apiGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", "type": "string" }, "kind": { "description": "kind is the type of resource being referenced.", "type": "string" }, "name": { "description": "name is the name of resource being referenced.", "type": "string" }, "namespace": { "description": "namespace is the namespace of the resource being referenced. This field is required when scope is set to \"Namespace\" and must be unset when scope is set to \"Cluster\".", "type": "string" }, "scope": { "description": "scope represents if this refers to a cluster or namespace scoped resource. This may be set to \"Cluster\" (default) or \"Namespace\".", "type": "string" } }, "required": [ "kind", "name" ], "type": "object" }, "io.k8s.api.networking.v1.IngressClassSpec": { "description": "IngressClassSpec provides information about the class of an Ingress.", "properties": { "controller": { "description": "controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", "type": "string" }, "parameters": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClassParametersReference", "description": "parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters." } }, "type": "object" }, "io.k8s.api.networking.v1.IngressList": { "description": "IngressList is a collection of Ingress.", "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 Ingress.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" }, "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 object's 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": "networking.k8s.io", "kind": "IngressList", "version": "v1" } ] }, "io.k8s.api.networking.v1.IngressLoadBalancerIngress": { "description": "IngressLoadBalancerIngress represents the status of a load-balancer ingress point.", "properties": { "hostname": { "description": "hostname is set for load-balancer ingress points that are DNS based.", "type": "string" }, "ip": { "description": "ip is set for load-balancer ingress points that are IP based.", "type": "string" }, "ports": { "description": "ports provides information about the ports exposed by this LoadBalancer.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressPortStatus" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.networking.v1.IngressLoadBalancerStatus": { "description": "IngressLoadBalancerStatus represents the status of a load-balancer.", "properties": { "ingress": { "description": "ingress is a list containing ingress points for the load-balancer.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressLoadBalancerIngress" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.networking.v1.IngressPortStatus": { "description": "IngressPortStatus represents the error condition of a service port", "properties": { "error": { "description": "error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\n CamelCase names\n- cloud provider specific error values must have names that comply with the\n format foo.example.com/CamelCase.", "type": "string" }, "port": { "description": "port is the port number of the ingress port.", "format": "int32", "type": "integer" }, "protocol": { "description": "protocol is the protocol of the ingress port. The supported values are: \"TCP\", \"UDP\", \"SCTP\"", "type": "string" } }, "required": [ "port", "protocol" ], "type": "object" }, "io.k8s.api.networking.v1.IngressRule": { "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", "properties": { "host": { "description": "host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n the IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\n\nhost can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.", "type": "string" }, "http": { "$ref": "#/definitions/io.k8s.api.networking.v1.HTTPIngressRuleValue" } }, "type": "object" }, "io.k8s.api.networking.v1.IngressServiceBackend": { "description": "IngressServiceBackend references a Kubernetes Service as a Backend.", "properties": { "name": { "description": "name is the referenced service. The service must exist in the same namespace as the Ingress object.", "type": "string" }, "port": { "$ref": "#/definitions/io.k8s.api.networking.v1.ServiceBackendPort", "description": "port of the referenced service. A port name or port number is required for a IngressServiceBackend." } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.networking.v1.IngressSpec": { "description": "IngressSpec describes the Ingress the user wishes to exist.", "properties": { "defaultBackend": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressBackend", "description": "defaultBackend is the backend that should handle requests that don't match any rule. If Rules are not specified, DefaultBackend must be specified. If DefaultBackend is not set, the handling of requests that do not match any of the rules will be up to the Ingress controller." }, "ingressClassName": { "description": "ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.", "type": "string" }, "rules": { "description": "rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressRule" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "tls": { "description": "tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressTLS" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.networking.v1.IngressStatus": { "description": "IngressStatus describe the current state of the Ingress.", "properties": { "loadBalancer": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressLoadBalancerStatus", "description": "loadBalancer contains the current status of the load-balancer." } }, "type": "object" }, "io.k8s.api.networking.v1.IngressTLS": { "description": "IngressTLS describes the transport layer security associated with an ingress.", "properties": { "hosts": { "description": "hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "secretName": { "description": "secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the \"Host\" header is used for routing.", "type": "string" } }, "type": "object" }, "io.k8s.api.networking.v1.NetworkPolicy": { "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec", "description": "spec represents the specification of the desired behavior for this NetworkPolicy." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } ] }, "io.k8s.api.networking.v1.NetworkPolicyEgressRule": { "description": "NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8", "properties": { "ports": { "description": "ports is a list of destination ports for outgoing traffic. 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", "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", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.networking.v1.NetworkPolicyIngressRule": { "description": "NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.", "properties": { "from": { "description": "from is a list of sources which should be able to access the 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 sources (traffic not restricted by source). 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 from list.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" }, "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", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.networking.v1.NetworkPolicyList": { "description": "NetworkPolicyList is a list of NetworkPolicy objects.", "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 a list of schema objects.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "networking.k8s.io", "kind": "NetworkPolicyList", "version": "v1" } ] }, "io.k8s.api.networking.v1.NetworkPolicyPeer": { "description": "NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed", "properties": { "ipBlock": { "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock", "description": "ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be." }, "namespaceSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector." }, "podSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace." } }, "type": "object" }, "io.k8s.api.networking.v1.NetworkPolicyPort": { "description": "NetworkPolicyPort describes a port to allow traffic on", "properties": { "endPort": { "description": "endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.", "format": "int32", "type": "integer" }, "port": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched." }, "protocol": { "description": "protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", "type": "string" } }, "type": "object" }, "io.k8s.api.networking.v1.NetworkPolicySpec": { "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", "properties": { "egress": { "description": "egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" }, "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", "x-kubernetes-list-type": "atomic" }, "podSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace." }, "policyTypes": { "description": "policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "podSelector" ], "type": "object" }, "io.k8s.api.networking.v1.ServiceBackendPort": { "description": "ServiceBackendPort is the service port being referenced.", "properties": { "name": { "description": "name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".", "type": "string" }, "number": { "description": "number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \"Name\".", "format": "int32", "type": "integer" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.networking.v1beta1.IPAddress": { "description": "IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddressSpec", "description": "spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } ] }, "io.k8s.api.networking.v1beta1.IPAddressList": { "description": "IPAddressList contains a list of IPAddress.", "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 IPAddresses.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" }, "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 object's 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": "networking.k8s.io", "kind": "IPAddressList", "version": "v1beta1" } ] }, "io.k8s.api.networking.v1beta1.IPAddressSpec": { "description": "IPAddressSpec describe the attributes in an IP Address.", "properties": { "parentRef": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ParentReference", "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.v1beta1.ParentReference": { "description": "ParentReference describes a reference to a parent object.", "properties": { "group": { "description": "Group is the group of the object being referenced.", "type": "string" }, "name": { "description": "Name is the name of the object being referenced.", "type": "string" }, "namespace": { "description": "Namespace is the namespace of the object being referenced.", "type": "string" }, "resource": { "description": "Resource is the resource of the object being referenced.", "type": "string" } }, "required": [ "resource", "name" ], "type": "object" }, "io.k8s.api.networking.v1beta1.ServiceCIDR": { "description": "ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDRSpec", "description": "spec is the desired state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" }, "status": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDRStatus", "description": "status represents the current state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } ] }, "io.k8s.api.networking.v1beta1.ServiceCIDRList": { "description": "ServiceCIDRList contains a list of ServiceCIDR objects.", "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 ServiceCIDRs.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" }, "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 object's 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": "networking.k8s.io", "kind": "ServiceCIDRList", "version": "v1beta1" } ] }, "io.k8s.api.networking.v1beta1.ServiceCIDRSpec": { "description": "ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.", "properties": { "cidrs": { "description": "CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.networking.v1beta1.ServiceCIDRStatus": { "description": "ServiceCIDRStatus describes the current state of the ServiceCIDR.", "properties": { "conditions": { "description": "conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service 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", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.api.node.v1.Overhead": { "description": "Overhead structure represents the resource overhead associated with running a pod.", "properties": { "podFixed": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "podFixed represents the fixed resource overhead associated with running a pod.", "type": "object" } }, "type": "object" }, "io.k8s.api.node.v1.RuntimeClass": { "description": "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/", "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" }, "handler": { "description": "handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.", "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": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "overhead": { "$ref": "#/definitions/io.k8s.api.node.v1.Overhead", "description": "overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see\n https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/" }, "scheduling": { "$ref": "#/definitions/io.k8s.api.node.v1.Scheduling", "description": "scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes." } }, "required": [ "handler" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } ] }, "io.k8s.api.node.v1.RuntimeClassList": { "description": "RuntimeClassList is a list of RuntimeClass objects.", "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 a list of schema objects.", "items": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "node.k8s.io", "kind": "RuntimeClassList", "version": "v1" } ] }, "io.k8s.api.node.v1.Scheduling": { "description": "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", "properties": { "nodeSelector": { "additionalProperties": { "type": "string" }, "description": "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", "type": "object", "x-kubernetes-map-type": "atomic" }, "tolerations": { "description": "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.policy.v1.Eviction": { "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods//evictions.", "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" }, "deleteOptions": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", "description": "DeleteOptions may be provided" }, "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": "ObjectMeta describes the pod that is being evicted." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "policy", "kind": "Eviction", "version": "v1" } ] }, "io.k8s.api.policy.v1.PodDisruptionBudget": { "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetSpec", "description": "Specification of the desired behavior of the PodDisruptionBudget." }, "status": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetStatus", "description": "Most recently observed status of the PodDisruptionBudget." } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } ] }, "io.k8s.api.policy.v1.PodDisruptionBudgetList": { "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", "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 a list of PodDisruptionBudgets", "items": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" }, "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 object's 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": "policy", "kind": "PodDisruptionBudgetList", "version": "v1" } ] }, "io.k8s.api.policy.v1.PodDisruptionBudgetSpec": { "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", "properties": { "maxUnavailable": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"." }, "minAvailable": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString", "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\"." }, "selector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.", "x-kubernetes-patch-strategy": "replace" }, "unhealthyPodEvictionPolicy": { "description": "UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n\nValid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy.\n\nIfHealthyBudget policy means that running pods (status.phase=\"Running\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction.\n\nAlwaysAllow policy means that all running pods (status.phase=\"Running\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction.\n\nAdditional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.\n\nThis field is beta-level. The eviction API uses this field when the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).", "type": "string" } }, "type": "object" }, "io.k8s.api.policy.v1.PodDisruptionBudgetStatus": { "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", "properties": { "conditions": { "description": "Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\n the number of allowed disruptions. Therefore no disruptions are\n allowed and the status of the condition will be False.\n- InsufficientPods: The number of pods are either at or below the number\n required by the PodDisruptionBudget. No disruptions are\n allowed and the status of the condition will be False.\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\n The condition will be True, and the number of allowed\n disruptions are provided by the disruptionsAllowed property.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, "currentHealthy": { "description": "current number of healthy pods", "format": "int32", "type": "integer" }, "desiredHealthy": { "description": "minimum desired number of healthy pods", "format": "int32", "type": "integer" }, "disruptedPods": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" }, "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", "type": "object" }, "disruptionsAllowed": { "description": "Number of pod disruptions that are currently allowed.", "format": "int32", "type": "integer" }, "expectedPods": { "description": "total number of pods counted by this disruption budget", "format": "int32", "type": "integer" }, "observedGeneration": { "description": "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", "format": "int64", "type": "integer" } }, "required": [ "disruptionsAllowed", "currentHealthy", "desiredHealthy", "expectedPods" ], "type": "object" }, "io.k8s.api.rbac.v1.AggregationRule": { "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", "properties": { "clusterRoleSelectors": { "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.rbac.v1.ClusterRole": { "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", "properties": { "aggregationRule": { "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule", "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller." }, "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's metadata." }, "rules": { "description": "Rules holds all the PolicyRules for this ClusterRole", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } ] }, "io.k8s.api.rbac.v1.ClusterRoleBinding": { "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", "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's metadata." }, "roleRef": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable." }, "subjects": { "description": "Subjects holds references to the objects the role applies to.", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "roleRef" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } ] }, "io.k8s.api.rbac.v1.ClusterRoleBindingList": { "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", "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 a list of ClusterRoleBindings", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" }, "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 object's metadata." } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBindingList", "version": "v1" } ] }, "io.k8s.api.rbac.v1.ClusterRoleList": { "description": "ClusterRoleList is a collection of ClusterRoles", "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 a list of ClusterRoles", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" }, "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 object's metadata." } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleList", "version": "v1" } ] }, "io.k8s.api.rbac.v1.PolicyRule": { "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", "properties": { "apiGroups": { "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.", "items": { "type": "string" }, "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", "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. '*' represents all resources.", "items": { "type": "string" }, "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", "x-kubernetes-list-type": "atomic" } }, "required": [ "verbs" ], "type": "object" }, "io.k8s.api.rbac.v1.Role": { "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", "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's metadata." }, "rules": { "description": "Rules holds all the PolicyRules for this Role", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } ] }, "io.k8s.api.rbac.v1.RoleBinding": { "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", "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's metadata." }, "roleRef": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef", "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable." }, "subjects": { "description": "Subjects holds references to the objects the role applies to.", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "roleRef" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } ] }, "io.k8s.api.rbac.v1.RoleBindingList": { "description": "RoleBindingList is a collection of RoleBindings", "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 a list of RoleBindings", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" }, "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 object's metadata." } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "RoleBindingList", "version": "v1" } ] }, "io.k8s.api.rbac.v1.RoleList": { "description": "RoleList is a collection of Roles", "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 a list of Roles", "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" }, "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 object's metadata." } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "rbac.authorization.k8s.io", "kind": "RoleList", "version": "v1" } ] }, "io.k8s.api.rbac.v1.RoleRef": { "description": "RoleRef contains information that points to the role being used", "properties": { "apiGroup": { "description": "APIGroup is the group for the resource being referenced", "type": "string" }, "kind": { "description": "Kind is the type of resource being referenced", "type": "string" }, "name": { "description": "Name is the name of resource being referenced", "type": "string" } }, "required": [ "apiGroup", "kind", "name" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.rbac.v1.Subject": { "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", "properties": { "apiGroup": { "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", "type": "string" }, "kind": { "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", "type": "string" }, "name": { "description": "Name of the object being referenced.", "type": "string" }, "namespace": { "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", "type": "string" } }, "required": [ "kind", "name" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.api.resource.v1alpha3.AllocationResult": { "description": "AllocationResult contains attributes of an allocated resource.", "properties": { "controller": { "description": "Controller is the name of the DRA driver which handled the allocation. That driver is also responsible for deallocating the claim. It is empty when the claim can be deallocated without involving a driver.\n\nA driver may allocate devices provided by other drivers, so this driver name here can be different from the driver names listed for the results.\n\nThis is an alpha field and requires enabling the DRAControlPlaneController feature gate.", "type": "string" }, "devices": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceAllocationResult", "description": "Devices is the result of allocating devices." }, "nodeSelector": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", "description": "NodeSelector defines where the allocated resources are available. If unset, they are available everywhere." } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.BasicDevice": { "description": "BasicDevice defines one device instance.", "properties": { "attributes": { "additionalProperties": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceAttribute" }, "description": "Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.\n\nThe maximum number of attributes and capacities combined is 32.", "type": "object" }, "capacity": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" }, "description": "Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.\n\nThe maximum number of attributes and capacities combined is 32.", "type": "object" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.CELDeviceSelector": { "description": "CELDeviceSelector contains a CEL expression for selecting a device.", "properties": { "expression": { "description": "Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.\n\nThe expression's input is an object named \"device\", which carries the following properties:\n - driver (string): the name of the driver which defines this device.\n - attributes (map[string]object): the device's attributes, grouped by prefix\n (e.g. device.attributes[\"dra.example.com\"] evaluates to an object with all\n of the attributes which were prefixed by \"dra.example.com\".\n - capacity (map[string]object): the device's capacities, grouped by prefix.\n\nExample: Consider a device with driver=\"dra.example.com\", which exposes two attributes named \"model\" and \"ext.example.com/family\" and which exposes one capacity named \"modules\". This input to this expression would have the following fields:\n\n device.driver\n device.attributes[\"dra.example.com\"].model\n device.attributes[\"ext.example.com\"].family\n device.capacity[\"dra.example.com\"].modules\n\nThe device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers.\n\nThe value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity.\n\nIf an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort.\n\nA robust expression should check for the existence of attributes before referencing them.\n\nFor ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:\n\n cel.bind(dra, device.attributes[\"dra.example.com\"], dra.someBool && dra.anotherBool)", "type": "string" } }, "required": [ "expression" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.Device": { "description": "Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.", "properties": { "basic": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.BasicDevice", "description": "Basic defines one device instance." }, "name": { "description": "Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.", "type": "string" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceAllocationConfiguration": { "description": "DeviceAllocationConfiguration gets embedded in an AllocationResult.", "properties": { "opaque": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration", "description": "Opaque provides driver-specific configuration parameters." }, "requests": { "description": "Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "source": { "description": "Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.", "type": "string" } }, "required": [ "source" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceAllocationResult": { "description": "DeviceAllocationResult is the result of allocating devices.", "properties": { "config": { "description": "This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag.\n\nThis includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceAllocationConfiguration" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "results": { "description": "Results lists all allocated devices.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceRequestAllocationResult" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceAttribute": { "description": "DeviceAttribute must have exactly one field set.", "properties": { "bool": { "description": "BoolValue is a true/false value.", "type": "boolean" }, "int": { "description": "IntValue is a number.", "format": "int64", "type": "integer" }, "string": { "description": "StringValue is a string. Must not be longer than 64 characters.", "type": "string" }, "version": { "description": "VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.", "type": "string" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceClaim": { "description": "DeviceClaim defines how to request devices with a ResourceClaim.", "properties": { "config": { "description": "This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClaimConfiguration" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "constraints": { "description": "These constraints must be satisfied by the set of devices that get allocated for the claim.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceConstraint" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "requests": { "description": "Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceRequest" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceClaimConfiguration": { "description": "DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.", "properties": { "opaque": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration", "description": "Opaque provides driver-specific configuration parameters." }, "requests": { "description": "Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceClass": { "description": "DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.", "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" }, "spec": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClassSpec", "description": "Spec defines what can be allocated and how to configure it.\n\nThis is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.\n\nChanging the spec automatically increments the metadata.generation number." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.DeviceClassConfiguration": { "description": "DeviceClassConfiguration is used in DeviceClass.", "properties": { "opaque": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration", "description": "Opaque provides driver-specific configuration parameters." } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceClassList": { "description": "DeviceClassList is a collection of classes.", "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 resource classes.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" }, "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": "DeviceClassList", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.DeviceClassSpec": { "description": "DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.", "properties": { "config": { "description": "Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.\n\nThey are passed to the driver, but are not considered while allocating the claim.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClassConfiguration" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "selectors": { "description": "Each selector must be satisfied by a device which is claimed via this class.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceSelector" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "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 claim that has not been allocated yet *and* that claim gets allocated through a control plane controller. It is ignored when the claim does not use a control plane controller for allocation.\n\nSetting this field is optional. If unset, all Nodes are candidates.\n\nThis is an alpha field and requires enabling the DRAControlPlaneController feature gate." } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceConstraint": { "description": "DeviceConstraint must have exactly one field set besides Requests.", "properties": { "matchAttribute": { "description": "MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.\n\nFor example, if you specified \"dra.example.com/numa\" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.\n\nMust include the domain qualifier.", "type": "string" }, "requests": { "description": "Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceRequest": { "description": "DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.", "properties": { "adminAccess": { "description": "AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.", "type": "boolean" }, "allocationMode": { "description": "AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\n\n- ExactCount: This request is for a specific number of devices.\n This is the default. The exact number is provided in the\n count field.\n\n- All: This request is for all of the matching devices in a pool.\n Allocation will fail if some devices are already allocated,\n unless adminAccess is requested.\n\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\n\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.", "type": "string" }, "count": { "description": "Count is used only when the count mode is \"ExactCount\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.", "format": "int64", "type": "integer" }, "deviceClassName": { "description": "DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\n\nA class is required. Which classes are available depends on the cluster.\n\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.", "type": "string" }, "name": { "description": "Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\n\nMust be a DNS label.", "type": "string" }, "selectors": { "description": "Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceSelector" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "name", "deviceClassName" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceRequestAllocationResult": { "description": "DeviceRequestAllocationResult contains the allocation result for one request.", "properties": { "device": { "description": "Device references one device instance via its name in the driver's resource pool. It must be a DNS label.", "type": "string" }, "driver": { "description": "Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.", "type": "string" }, "pool": { "description": "This name together with the driver name and the device name field identify which device was allocated (`//`).\n\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.", "type": "string" }, "request": { "description": "Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.", "type": "string" } }, "required": [ "request", "driver", "pool", "device" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.DeviceSelector": { "description": "DeviceSelector must have exactly one field set.", "properties": { "cel": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.CELDeviceSelector", "description": "CEL contains a CEL expression for selecting a device." } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration": { "description": "OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.", "properties": { "driver": { "description": "Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.\n\nAn admission policy provided by the driver developer could use this to decide whether it needs to validate them.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.", "type": "string" }, "parameters": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", "description": "Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version (\"kind\" + \"apiVersion\" for Kubernetes types), with conversion between different versions." } }, "required": [ "driver", "parameters" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.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 DRAControlPlaneController feature gate.", "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" }, "spec": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContextSpec", "description": "Spec describes where resources for the Pod are needed." }, "status": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContextStatus", "description": "Status describes where resources for the Pod can be allocated." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.PodSchedulingContextList": { "description": "PodSchedulingContextList is a collection of Pod scheduling objects.", "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 PodSchedulingContext objects.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" }, "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": "PodSchedulingContextList", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.PodSchedulingContextSpec": { "description": "PodSchedulingContextSpec describes where resources for the Pod are needed.", "properties": { "potentialNodes": { "description": "PotentialNodes lists nodes where the Pod might be able to run.\n\nThe size of this field is limited to 128. This is large enough for many clusters. Larger clusters may need more attempts to find a node that suits all pending resources. This may get increased in the future, but not reduced.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "selectedNode": { "description": "SelectedNode is the node for which allocation of ResourceClaims that are referenced by the Pod and that use \"WaitForFirstConsumer\" allocation is to be attempted.", "type": "string" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.PodSchedulingContextStatus": { "description": "PodSchedulingContextStatus describes where resources for the Pod can be allocated.", "properties": { "resourceClaims": { "description": "ResourceClaims describes resource availability for each pod.spec.resourceClaim entry where the corresponding ResourceClaim uses \"WaitForFirstConsumer\" allocation mode.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimSchedulingStatus" }, "type": "array", "x-kubernetes-list-map-keys": [ "name" ], "x-kubernetes-list-type": "map" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.ResourceClaim": { "description": "ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.", "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" }, "spec": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimSpec", "description": "Spec describes what is being requested and how to configure it. The spec is immutable." }, "status": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimStatus", "description": "Status describes whether the claim is ready to use and what has been allocated." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.ResourceClaimConsumerReference": { "description": "ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.", "properties": { "apiGroup": { "description": "APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.", "type": "string" }, "name": { "description": "Name is the name of resource being referenced.", "type": "string" }, "resource": { "description": "Resource is the type of resource being referenced, for example \"pods\".", "type": "string" }, "uid": { "description": "UID identifies exactly one incarnation of the resource.", "type": "string" } }, "required": [ "resource", "name", "uid" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.ResourceClaimList": { "description": "ResourceClaimList is a collection of claims.", "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 resource claims.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" }, "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": "ResourceClaimList", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.ResourceClaimSchedulingStatus": { "description": "ResourceClaimSchedulingStatus contains information about one particular ResourceClaim with \"WaitForFirstConsumer\" allocation mode.", "properties": { "name": { "description": "Name matches the pod.spec.resourceClaims[*].Name field.", "type": "string" }, "unsuitableNodes": { "description": "UnsuitableNodes lists nodes that the ResourceClaim cannot be allocated for.\n\nThe size of this field is limited to 128, the same as for PodSchedulingSpec.PotentialNodes. This may get increased in the future, but not reduced.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "name" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.ResourceClaimSpec": { "description": "ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.", "properties": { "controller": { "description": "Controller is the name of the DRA driver that is meant to handle allocation of this claim. If empty, allocation is handled by the scheduler while scheduling a pod.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.\n\nThis is an alpha field and requires enabling the DRAControlPlaneController feature gate.", "type": "string" }, "devices": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClaim", "description": "Devices defines how to request devices." } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.ResourceClaimStatus": { "description": "ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.", "properties": { "allocation": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.AllocationResult", "description": "Allocation is set once the claim has been allocated successfully." }, "deallocationRequested": { "description": "Indicates that a claim is to be deallocated. While this is set, no new consumers may be added to ReservedFor.\n\nThis is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field.\n\nThis is an alpha field and requires enabling the DRAControlPlaneController feature gate.", "type": "boolean" }, "reservedFor": { "description": "ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.\n\nIn a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled.\n\nBoth schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.\n\nThere can be at most 32 such reservations. This may get increased in the future, but not reduced.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimConsumerReference" }, "type": "array", "x-kubernetes-list-map-keys": [ "uid" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "uid", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.api.resource.v1alpha3.ResourceClaimTemplate": { "description": "ResourceClaimTemplate is used to produce ResourceClaim objects.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.", "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" }, "spec": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplateSpec", "description": "Describes the ResourceClaim that is to be generated.\n\nThis field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.ResourceClaimTemplateList": { "description": "ResourceClaimTemplateList is a collection of claim templates.", "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 resource claim templates.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" }, "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": "ResourceClaimTemplateList", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.ResourceClaimTemplateSpec": { "description": "ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.", "properties": { "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "ObjectMeta may contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation." }, "spec": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimSpec", "description": "Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here." } }, "required": [ "spec" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.ResourcePool": { "description": "ResourcePool describes the pool that ResourceSlices belong to.", "properties": { "generation": { "description": "Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.\n\nCombined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state.", "format": "int64", "type": "integer" }, "name": { "description": "Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.\n\nIt must not be longer than 253 characters and must consist of one or more DNS sub-domains separated by slashes. This field is immutable.", "type": "string" }, "resourceSliceCount": { "description": "ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.\n\nConsumers can use this to check whether they have seen all ResourceSlices belonging to the same pool.", "format": "int64", "type": "integer" } }, "required": [ "name", "generation", "resourceSliceCount" ], "type": "object" }, "io.k8s.api.resource.v1alpha3.ResourceSlice": { "description": "ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.\n\nAt the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , .\n\nWhenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.\n\nWhen allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.\n\nFor resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.", "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" }, "spec": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceSliceSpec", "description": "Contains the information published by the driver.\n\nChanging the spec automatically increments the metadata.generation number." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.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 resource ResourceSlices.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.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": "v1alpha3" } ] }, "io.k8s.api.resource.v1alpha3.ResourceSliceSpec": { "description": "ResourceSliceSpec contains the information published by the driver in one ResourceSlice.", "properties": { "allNodes": { "description": "AllNodes indicates that all nodes have access to the resources in the pool.\n\nExactly one of NodeName, NodeSelector and AllNodes must be set.", "type": "boolean" }, "devices": { "description": "Devices lists some or all of the devices in this pool.\n\nMust not have more than 128 entries.", "items": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.Device" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "driver": { "description": "Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.\n\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable.", "type": "string" }, "nodeName": { "description": "NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.\n\nThis field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available.\n\nExactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.", "type": "string" }, "nodeSelector": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", "description": "NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node.\n\nMust use exactly one term.\n\nExactly one of NodeName, NodeSelector and AllNodes must be set." }, "pool": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourcePool", "description": "Pool describes the pool that this ResourceSlice belongs to." } }, "required": [ "driver", "pool" ], "type": "object" }, "io.k8s.api.scheduling.v1.PriorityClass": { "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", "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" }, "description": { "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", "type": "string" }, "globalDefault": { "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", "type": "boolean" }, "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "preemptionPolicy": { "description": "preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.", "type": "string" }, "value": { "description": "value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", "format": "int32", "type": "integer" } }, "required": [ "value" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } ] }, "io.k8s.api.scheduling.v1.PriorityClassList": { "description": "PriorityClassList is a collection of priority classes.", "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 PriorityClasses", "items": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "scheduling.k8s.io", "kind": "PriorityClassList", "version": "v1" } ] }, "io.k8s.api.storage.v1.CSIDriver": { "description": "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", "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. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriverSpec", "description": "spec represents the specification of the CSI Driver." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } ] }, "io.k8s.api.storage.v1.CSIDriverList": { "description": "CSIDriverList is a collection of CSIDriver objects.", "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 CSIDriver", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "CSIDriverList", "version": "v1" } ] }, "io.k8s.api.storage.v1.CSIDriverSpec": { "description": "CSIDriverSpec is the specification of a CSIDriver.", "properties": { "attachRequired": { "description": "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.\n\nThis field is immutable.", "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 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 was immutable in Kubernetes < 1.29 and now is mutable.", "type": "boolean" }, "requiresRepublish": { "description": "requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\n\nNote: 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.", "type": "boolean" }, "seLinuxMount": { "description": "seLinuxMount specifies if the CSI driver supports \"-o context\" mount option.\n\nWhen \"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.\n\nWhen \"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.\n\nDefault is \"false\".", "type": "boolean" }, "storageCapacity": { "description": "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.\n\nThe 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.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis field was immutable in Kubernetes <= 1.22 and now is mutable.", "type": "boolean" }, "tokenRequests": { "description": "tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \"csi.storage.k8s.io/serviceAccount.tokens\": {\n \"\": {\n \"token\": ,\n \"expirationTimestamp\": ,\n },\n ...\n}\n\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1.TokenRequest" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "volumeLifecycleModes": { "description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n\nThe other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n\nFor more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.\n\nThis field is beta. This field is immutable.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set" } }, "type": "object" }, "io.k8s.api.storage.v1.CSINode": { "description": "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", "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's metadata. metadata.name must be the Kubernetes node name." }, "spec": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeSpec", "description": "spec is the specification of CSINode" } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } ] }, "io.k8s.api.storage.v1.CSINodeDriver": { "description": "CSINodeDriver holds information about the specification of one CSI driver installed on a node", "properties": { "allocatable": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeNodeResources", "description": "allocatable represents the volume resources of a node that are available for scheduling. This field is beta." }, "name": { "description": "name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", "type": "string" }, "nodeID": { "description": "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", "type": "string" }, "topologyKeys": { "description": "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "name", "nodeID" ], "type": "object" }, "io.k8s.api.storage.v1.CSINodeList": { "description": "CSINodeList is a collection of CSINode objects.", "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 CSINode", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "CSINodeList", "version": "v1" } ] }, "io.k8s.api.storage.v1.CSINodeSpec": { "description": "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", "properties": { "drivers": { "description": "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", "items": { "$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" } }, "required": [ "drivers" ], "type": "object" }, "io.k8s.api.storage.v1.CSIStorageCapacity": { "description": "CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes.\n\nFor example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\n\nThe producer of these objects can decide which approach is more suitable.\n\nThey are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.", "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" }, "capacity": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable." }, "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" }, "maximumVolumeSize": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", "description": "maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim." }, "metadata": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", "description": "Standard object's metadata. The name has no particular meaning. It must be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\n\nObjects are namespaced.\n\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "nodeTopology": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable." }, "storageClassName": { "description": "storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.", "type": "string" } }, "required": [ "storageClassName" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } ] }, "io.k8s.api.storage.v1.CSIStorageCapacityList": { "description": "CSIStorageCapacityList is a collection of CSIStorageCapacity objects.", "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 CSIStorageCapacity objects.", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "CSIStorageCapacityList", "version": "v1" } ] }, "io.k8s.api.storage.v1.StorageClass": { "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", "properties": { "allowVolumeExpansion": { "description": "allowVolumeExpansion shows whether the storage class allow volume expand.", "type": "boolean" }, "allowedTopologies": { "description": "allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "mountOptions": { "description": "mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "parameters": { "additionalProperties": { "type": "string" }, "description": "parameters holds the parameters for the provisioner that should create volumes of this storage class.", "type": "object" }, "provisioner": { "description": "provisioner indicates the type of the provisioner.", "type": "string" }, "reclaimPolicy": { "description": "reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete.", "type": "string" }, "volumeBindingMode": { "description": "volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", "type": "string" } }, "required": [ "provisioner" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } ] }, "io.k8s.api.storage.v1.StorageClassList": { "description": "StorageClassList is a collection of storage classes.", "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 StorageClasses", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "StorageClassList", "version": "v1" } ] }, "io.k8s.api.storage.v1.TokenRequest": { "description": "TokenRequest contains parameters of a service account token.", "properties": { "audience": { "description": "audience is the intended audience of the token in \"TokenRequestSpec\". It will default to the audiences of kube apiserver.", "type": "string" }, "expirationSeconds": { "description": "expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\". It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".", "format": "int64", "type": "integer" } }, "required": [ "audience" ], "type": "object" }, "io.k8s.api.storage.v1.VolumeAttachment": { "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", "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.storage.v1.VolumeAttachmentSpec", "description": "spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system." }, "status": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus", "description": "status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher." } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } ] }, "io.k8s.api.storage.v1.VolumeAttachmentList": { "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", "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 VolumeAttachments", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "VolumeAttachmentList", "version": "v1" } ] }, "io.k8s.api.storage.v1.VolumeAttachmentSource": { "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", "properties": { "inlineVolumeSpec": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec", "description": "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is beta-level and is only honored by servers that enabled the CSIMigration feature." }, "persistentVolumeName": { "description": "persistentVolumeName represents the name of the persistent volume to attach.", "type": "string" } }, "type": "object" }, "io.k8s.api.storage.v1.VolumeAttachmentSpec": { "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", "properties": { "attacher": { "description": "attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", "type": "string" }, "nodeName": { "description": "nodeName represents the node that the volume should be attached to.", "type": "string" }, "source": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource", "description": "source represents the volume that should be attached." } }, "required": [ "attacher", "source", "nodeName" ], "type": "object" }, "io.k8s.api.storage.v1.VolumeAttachmentStatus": { "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", "properties": { "attachError": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", "description": "attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher." }, "attached": { "description": "attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", "type": "boolean" }, "attachmentMetadata": { "additionalProperties": { "type": "string" }, "description": "attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", "type": "object" }, "detachError": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeError", "description": "detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher." } }, "required": [ "attached" ], "type": "object" }, "io.k8s.api.storage.v1.VolumeError": { "description": "VolumeError captures an error encountered during a volume operation.", "properties": { "message": { "description": "message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", "type": "string" }, "time": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "time represents the time the error was encountered." } }, "type": "object" }, "io.k8s.api.storage.v1.VolumeNodeResources": { "description": "VolumeNodeResources is a set of resource limits for scheduling of volumes.", "properties": { "count": { "description": "count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", "format": "int32", "type": "integer" } }, "type": "object" }, "io.k8s.api.storage.v1alpha1.VolumeAttributesClass": { "description": "VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.", "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": "Name of the CSI driver This field is immutable.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "parameters": { "additionalProperties": { "type": "string" }, "description": "parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass.\n\nThis field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the modifyVolumeStatus field.", "type": "object" } }, "required": [ "driverName" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } ] }, "io.k8s.api.storage.v1alpha1.VolumeAttributesClassList": { "description": "VolumeAttributesClassList is a collection of VolumeAttributesClass objects.", "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 VolumeAttributesClass objects.", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "VolumeAttributesClassList", "version": "v1alpha1" } ] }, "io.k8s.api.storage.v1beta1.VolumeAttributesClass": { "description": "VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.", "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": "Name of the CSI driver This field is immutable.", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "parameters": { "additionalProperties": { "type": "string" }, "description": "parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass.\n\nThis field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the modifyVolumeStatus field.", "type": "object" } }, "required": [ "driverName" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } ] }, "io.k8s.api.storage.v1beta1.VolumeAttributesClassList": { "description": "VolumeAttributesClassList is a collection of VolumeAttributesClass objects.", "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 VolumeAttributesClass objects.", "items": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "storage.k8s.io", "kind": "VolumeAttributesClassList", "version": "v1beta1" } ] }, "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": { "description": { "description": "description is a human readable description of this column.", "type": "string" }, "format": { "description": "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", "type": "string" }, "jsonPath": { "description": "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", "type": "string" }, "name": { "description": "name is a human readable name for the column.", "type": "string" }, "priority": { "description": "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", "format": "int32", "type": "integer" }, "type": { "description": "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", "type": "string" } }, "required": [ "name", "type", "jsonPath" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion": { "description": "CustomResourceConversion describes how to convert different versions of a CR.", "properties": { "strategy": { "description": "strategy specifies how custom resources are converted between versions. Allowed values are: - `\"None\"`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `\"Webhook\"`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", "type": "string" }, "webhook": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion", "description": "webhook describes how to call the conversion webhook. Required when `strategy` is set to `\"Webhook\"`." } }, "required": [ "strategy" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition": { "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>.", "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's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec", "description": "spec describes how the user wants the resources to appear" }, "status": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus", "description": "status indicates the actual state of the CustomResourceDefinition" } }, "required": [ "spec" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } ] }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition": { "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastTransitionTime last time the condition transitioned from one status to another." }, "message": { "description": "message is a human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "reason is a unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "description": "status is the status of the condition. Can be True, False, Unknown.", "type": "string" }, "type": { "description": "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList": { "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", "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 list individual CustomResourceDefinition objects", "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" }, "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 object's 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": "apiextensions.k8s.io", "kind": "CustomResourceDefinitionList", "version": "v1" } ] }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames": { "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", "properties": { "categories": { "description": "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", "items": { "type": "string" }, "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.", "type": "string" }, "listKind": { "description": "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", "type": "string" }, "plural": { "description": "plural is the plural name of the resource to serve. The custom resources are served under `/apis///.../`. Must match the name of the CustomResourceDefinition (in the form `.`). Must be all lowercase.", "type": "string" }, "shortNames": { "description": "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get `. It must be all lowercase.", "items": { "type": "string" }, "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`.", "type": "string" } }, "required": [ "plural", "kind" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec": { "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", "properties": { "conversion": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion", "description": "conversion defines conversion settings for the CRD." }, "group": { "description": "group is the API group of the defined custom resource. The custom resources are served under `/apis//...`. Must match the name of the CustomResourceDefinition (in the form `.`).", "type": "string" }, "names": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", "description": "names specify the resource and kind names for the custom resource." }, "preserveUnknownFields": { "description": "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning for details.", "type": "boolean" }, "scope": { "description": "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", "type": "string" }, "versions": { "description": "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "group", "names", "scope", "versions" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus": { "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", "properties": { "acceptedNames": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames", "description": "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec." }, "conditions": { "description": "conditions indicate state for particular aspects of a CustomResourceDefinition", "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map" }, "storedVersions": { "description": "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion": { "description": "CustomResourceDefinitionVersion describes a version for CRD.", "properties": { "additionalPrinterColumns": { "description": "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" }, "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.", "type": "boolean" }, "deprecationWarning": { "description": "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.", "type": "string" }, "name": { "description": "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis///...` if `served` is true.", "type": "string" }, "schema": { "$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" }, "storage": { "description": "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", "type": "boolean" }, "subresources": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources", "description": "subresources specify what subresources this version of the defined custom resource have." } }, "required": [ "name", "served", "storage" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale": { "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", "properties": { "labelSelectorPath": { "description": "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", "type": "string" }, "specReplicasPath": { "description": "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", "type": "string" }, "statusReplicasPath": { "description": "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", "type": "string" } }, "required": [ "specReplicasPath", "statusReplicasPath" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus": { "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources": { "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", "properties": { "scale": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale", "description": "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object." }, "status": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus", "description": "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object." } }, "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation": { "description": "CustomResourceValidation is a list of validation methods for CustomResources.", "properties": { "openAPIV3Schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps", "description": "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning." } }, "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation": { "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", "properties": { "description": { "type": "string" }, "url": { "type": "string" } }, "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON": { "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil." }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps": { "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", "properties": { "$ref": { "type": "string" }, "$schema": { "type": "string" }, "additionalItems": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" }, "additionalProperties": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool" }, "allOf": { "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "anyOf": { "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "default": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", "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." }, "definitions": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, "type": "object" }, "dependencies": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray" }, "type": "object" }, "description": { "type": "string" }, "enum": { "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "example": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" }, "exclusiveMaximum": { "type": "boolean" }, "exclusiveMinimum": { "type": "boolean" }, "externalDocs": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation" }, "format": { "description": "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", "type": "string" }, "id": { "type": "string" }, "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray" }, "maxItems": { "format": "int64", "type": "integer" }, "maxLength": { "format": "int64", "type": "integer" }, "maxProperties": { "format": "int64", "type": "integer" }, "maximum": { "format": "double", "type": "number" }, "minItems": { "format": "int64", "type": "integer" }, "minLength": { "format": "int64", "type": "integer" }, "minProperties": { "format": "int64", "type": "integer" }, "minimum": { "format": "double", "type": "number" }, "multipleOf": { "format": "double", "type": "number" }, "not": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, "nullable": { "type": "boolean" }, "oneOf": { "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "pattern": { "type": "string" }, "patternProperties": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, "type": "object" }, "properties": { "additionalProperties": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, "type": "object" }, "required": { "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "title": { "type": "string" }, "type": { "type": "string" }, "uniqueItems": { "type": "boolean" }, "x-kubernetes-embedded-resource": { "description": "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", "type": "boolean" }, "x-kubernetes-int-or-string": { "description": "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", "type": "boolean" }, "x-kubernetes-list-map-keys": { "description": "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", "items": { "type": "string" }, "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.", "type": "string" }, "x-kubernetes-map-type": { "description": "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", "type": "string" }, "x-kubernetes-preserve-unknown-fields": { "description": "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", "type": "boolean" }, "x-kubernetes-validations": { "description": "x-kubernetes-validations describes a list of validation rules written in the CEL expression language.", "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule" }, "type": "array", "x-kubernetes-list-map-keys": [ "rule" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "rule", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray": { "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes." }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool": { "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property." }, "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": { "name": { "description": "name is the name of the service. Required", "type": "string" }, "namespace": { "description": "namespace is the namespace of the service. Required", "type": "string" }, "path": { "description": "path is an optional URL path at which the webhook will be contacted.", "type": "string" }, "port": { "description": "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", "format": "int32", "type": "integer" } }, "required": [ "namespace", "name" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule": { "description": "ValidationRule describes a validation rule written in the CEL expression language.", "properties": { "fieldPath": { "description": "fieldPath represents the field path returned when the validation fails. It must be a relative JSON path (i.e. with array notation) scoped to the location of this x-kubernetes-validations extension in the schema and refer to an existing field. e.g. when validation checks if a specific attribute `foo` under a map `testMap`, the fieldPath could be set to `.testMap.foo` If the validation checks two lists must have unique attributes, the fieldPath could be set to either of the list: e.g. `.testList` It does not support list numeric index. It supports child operation to refer to an existing field currently. Refer to [JSONPath support in Kubernetes](https://kubernetes.io/docs/reference/kubectl/jsonpath/) for more info. Numeric index of array is not supported. For field name which contains special characters, use `['specialName']` to refer the field name. e.g. for attribute `foo.34$` appears in a list `testList`, the fieldPath could be set to `.testList['foo.34$']`", "type": "string" }, "message": { "description": "Message represents the message displayed when validation fails. The message is required if the Rule 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\"", "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 rule, 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 rule; the only difference is the return type. Example: \"x must be less than max (\"+string(self.max)+\")\"", "type": "string" }, "optionalOldSelf": { "description": "optionalOldSelf is used to opt a transition rule into evaluation even when the object is first created, or if the old object is missing the value.\n\nWhen enabled `oldSelf` will be a CEL optional whose value will be `None` if there is no old value, or when the object is initially created.\n\nYou may check for presence of oldSelf using `oldSelf.hasValue()` and unwrap it after checking using `oldSelf.value()`. Check the CEL documentation for Optional types for more information: https://pkg.go.dev/github.com/google/cel-go/cel#OptionalTypes\n\nMay not be set unless `oldSelf` is used in `rule`.", "type": "boolean" }, "reason": { "description": "reason provides a machine-readable validation failure reason that is returned to the caller when a request fails this validation rule. The HTTP status code returned to the caller will match the reason of the reason of the first failed validation rule. The currently supported reasons are: \"FieldValueInvalid\", \"FieldValueForbidden\", \"FieldValueRequired\", \"FieldValueDuplicate\". If not set, default to use \"FieldValueInvalid\". All future added reasons must be accepted by clients when reading this value and unknown reasons should be treated as FieldValueInvalid.", "type": "string" }, "rule": { "description": "Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\"rule\": \"self.status.actual <= self.spec.maxDesired\"}\n\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\"rule\": \"self.components['Widget'].priority < 10\"} - Rule scoped to a list of integers: {\"rule\": \"self.values.all(value, value >= 0 && value < 100)\"} - Rule scoped to a string value: {\"rule\": \"self.startsWith('kube')\"}\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\n\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \"unknown type\". An \"unknown type\" is recursively defined as:\n - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\n - An array where the items schema is of an \"unknown type\"\n - An object where the additionalProperties schema is of an \"unknown type\"\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 - Rule accessing a property named \"namespace\": {\"rule\": \"self.__namespace__ > 0\"}\n - Rule accessing a property named \"x-prop\": {\"rule\": \"self.x__dash__prop > 0\"}\n - Rule accessing a property named \"redact__d\": {\"rule\": \"self.redact__underscores__d > 0\"}\n\nEquality on arrays with x-kubernetes-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.\n\nIf `rule` makes use of the `oldSelf` variable it is implicitly a `transition rule`.\n\nBy default, the `oldSelf` variable is the same type as `self`. When `optionalOldSelf` is true, the `oldSelf` variable is a CEL optional\n variable whose value() is the same type as `self`.\nSee the documentation for the `optionalOldSelf` field for details.\n\nTransition rules by default are applied only on UPDATE requests and are skipped if an old value could not be found. You can opt a transition rule into unconditional evaluation by setting `optionalOldSelf` to true.", "type": "string" } }, "required": [ "rule" ], "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig": { "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook.", "properties": { "caBundle": { "description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", "format": "byte", "type": "string" }, "service": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference", "description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`." }, "url": { "description": "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", "type": "string" } }, "type": "object" }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion": { "description": "WebhookConversion describes how to call a conversion webhook", "properties": { "clientConfig": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig", "description": "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`." }, "conversionReviewVersions": { "description": "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. 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.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "conversionReviewVersions" ], "type": "object" }, "io.k8s.apimachinery.pkg.api.resource.Quantity": { "description": "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n``` ::= \n\n\t(Note that may be empty, from the \"\" case in .)\n\n ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei\n\n\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\n ::= m | \"\" | k | M | G | T | P | E\n\n\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\n ::= \"e\" | \"E\" ```\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n\n- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.\n\nThe sign will be omitted unless the number is negative.\n\nExamples:\n\n- 1.5 will be serialized as \"1500m\" - 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", "type": "string" }, "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", "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" }, "name": { "description": "name is the name of the group.", "type": "string" }, "preferredVersion": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", "description": "preferredVersion is the version preferred by the API server, which probably is the storage version." }, "serverAddressByClientCIDRs": { "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" }, "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", "x-kubernetes-list-type": "atomic" } }, "required": [ "name", "versions" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "APIGroup", "version": "v1" } ] }, "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", "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" }, "groups": { "description": "groups is a list of APIGroup.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" }, "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", "type": "string" } }, "required": [ "groups" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "APIGroupList", "version": "v1" } ] }, "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { "description": "APIResource specifies the name of a resource and whether it is namespaced.", "properties": { "categories": { "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", "items": { "type": "string" }, "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\".", "type": "string" }, "kind": { "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", "type": "string" }, "name": { "description": "name is the plural name of the resource.", "type": "string" }, "namespaced": { "description": "namespaced indicates if a resource is namespaced or not.", "type": "boolean" }, "shortNames": { "description": "shortNames is a list of suggested short names of the resource.", "items": { "type": "string" }, "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.", "type": "string" }, "storageVersionHash": { "description": "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", "type": "string" }, "verbs": { "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", "items": { "type": "string" }, "type": "array" }, "version": { "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", "type": "string" } }, "required": [ "name", "singularName", "namespaced", "kind", "verbs" ], "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", "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" }, "groupVersion": { "description": "groupVersion is the group and version this APIResourceList is for.", "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" }, "resources": { "description": "resources contains the name of the resources and if they are namespaced.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "groupVersion", "resources" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "APIResourceList", "version": "v1" } ] }, "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", "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" }, "serverAddressByClientCIDRs": { "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "versions": { "description": "versions are the api versions that are available.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "versions", "serverAddressByClientCIDRs" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "APIVersions", "version": "v1" } ] }, "io.k8s.apimachinery.pkg.apis.meta.v1.Condition": { "description": "Condition contains details for one aspect of the current state of this API Resource.", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable." }, "message": { "description": "message is a human readable message indicating details about the transition. This may be an empty string.", "type": "string" }, "observedGeneration": { "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.", "format": "int64", "type": "integer" }, "reason": { "description": "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.", "type": "string" }, "status": { "description": "status of the condition, one of True, False, Unknown.", "type": "string" }, "type": { "description": "type of condition in CamelCase or in foo.example.com/CamelCase.", "type": "string" } }, "required": [ "type", "status", "lastTransitionTime", "reason", "message" ], "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { "description": "DeleteOptions may be provided when deleting an API object.", "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" }, "dryRun": { "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", "items": { "type": "string" }, "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.", "format": "int64", "type": "integer" }, "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" }, "orphanDependents": { "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.", "type": "boolean" }, "preconditions": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." }, "propagationPolicy": { "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.", "type": "string" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "DeleteOptions", "version": "v1" }, { "group": "admission.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "admission.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "admissionregistration.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "admissionregistration.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "admissionregistration.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "apiextensions.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "apiextensions.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "apiregistration.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "apiregistration.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "apps", "kind": "DeleteOptions", "version": "v1" }, { "group": "apps", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "apps", "kind": "DeleteOptions", "version": "v1beta2" }, { "group": "authentication.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "authentication.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "authentication.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "authorization.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "authorization.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "autoscaling", "kind": "DeleteOptions", "version": "v1" }, { "group": "autoscaling", "kind": "DeleteOptions", "version": "v2" }, { "group": "autoscaling", "kind": "DeleteOptions", "version": "v2beta1" }, { "group": "autoscaling", "kind": "DeleteOptions", "version": "v2beta2" }, { "group": "batch", "kind": "DeleteOptions", "version": "v1" }, { "group": "batch", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "certificates.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "certificates.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "certificates.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "coordination.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "coordination.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "coordination.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "discovery.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "discovery.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "events.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "events.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "extensions", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "DeleteOptions", "version": "v1beta2" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "DeleteOptions", "version": "v1beta3" }, { "group": "imagepolicy.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "internal.apiserver.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "networking.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "networking.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "networking.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "node.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "node.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "node.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "policy", "kind": "DeleteOptions", "version": "v1" }, { "group": "policy", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "rbac.authorization.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "rbac.authorization.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "rbac.authorization.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "resource.k8s.io", "kind": "DeleteOptions", "version": "v1alpha3" }, { "group": "scheduling.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "scheduling.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "scheduling.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "storage.k8s.io", "kind": "DeleteOptions", "version": "v1" }, { "group": "storage.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" }, { "group": "storage.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" }, { "group": "storagemigration.k8s.io", "kind": "DeleteOptions", "version": "v1alpha1" } ] }, "io.k8s.apimachinery.pkg.apis.meta.v1.FieldSelectorRequirement": { "description": "FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.", "properties": { "key": { "description": "key is the field selector key that the requirement applies to.", "type": "string" }, "operator": { "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.", "type": "string" }, "values": { "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "key", "operator" ], "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1": { "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", "properties": { "groupVersion": { "description": "groupVersion specifies the API group and version in the form \"group/version\"", "type": "string" }, "version": { "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", "type": "string" } }, "required": [ "groupVersion", "version" ], "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": { "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", "properties": { "matchExpressions": { "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "matchLabels": { "additionalProperties": { "type": "string" }, "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", "type": "object" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "properties": { "key": { "description": "key is the label key that the selector applies to.", "type": "string" }, "operator": { "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "type": "string" }, "values": { "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "atomic" } }, "required": [ "key", "operator" ], "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", "properties": { "continue": { "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", "type": "string" }, "remainingItemCount": { "description": "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", "format": "int64", "type": "integer" }, "resourceVersion": { "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "selfLink": { "description": "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.", "type": "string" } }, "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": { "description": "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.", "properties": { "apiVersion": { "description": "APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.", "type": "string" }, "fieldsType": { "description": "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"", "type": "string" }, "fieldsV1": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1", "description": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type." }, "manager": { "description": "Manager is an identifier of the workflow managing these fields.", "type": "string" }, "operation": { "description": "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.", "type": "string" }, "subresource": { "description": "Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.", "type": "string" }, "time": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over." } }, "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { "description": "MicroTime is version of Time with microsecond level precision.", "format": "date-time", "type": "string" }, "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "properties": { "annotations": { "additionalProperties": { "type": "string" }, "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations", "type": "object" }, "creationTimestamp": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "deletionGracePeriodSeconds": { "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", "format": "int64", "type": "integer" }, "deletionTimestamp": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "finalizers": { "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.", "items": { "type": "string" }, "type": "array", "x-kubernetes-list-type": "set", "x-kubernetes-patch-strategy": "merge" }, "generateName": { "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will return a 409.\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency", "type": "string" }, "generation": { "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", "format": "int64", "type": "integer" }, "labels": { "additionalProperties": { "type": "string" }, "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels", "type": "object" }, "managedFields": { "description": "ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" }, "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", "type": "string" }, "namespace": { "description": "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces", "type": "string" }, "ownerReferences": { "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.", "items": { "$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" }, "resourceVersion": { "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "selfLink": { "description": "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids", "type": "string" } }, "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": { "description": "OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.", "properties": { "apiVersion": { "description": "API version of the referent.", "type": "string" }, "blockOwnerDeletion": { "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.", "type": "boolean" }, "controller": { "description": "If true, this reference points to the managing controller.", "type": "boolean" }, "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids", "type": "string" } }, "required": [ "apiVersion", "kind", "name", "uid" ], "type": "object", "x-kubernetes-map-type": "atomic" }, "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", "properties": { "resourceVersion": { "description": "Specifies the target ResourceVersion", "type": "string" }, "uid": { "description": "Specifies the target UID.", "type": "string" } }, "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", "properties": { "clientCIDR": { "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", "type": "string" }, "serverAddress": { "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", "type": "string" } }, "required": [ "clientCIDR", "serverAddress" ], "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { "description": "Status is a return value for calls that don't return other objects.", "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" }, "code": { "description": "Suggested HTTP return code for this status, 0 if not set.", "format": "int32", "type": "integer" }, "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.", "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", "type": "string" }, "message": { "description": "A human-readable description of the status of this operation.", "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" }, "reason": { "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", "type": "string" }, "status": { "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", "type": "string" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "Status", "version": "v1" } ] }, "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", "properties": { "field": { "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", "type": "string" }, "message": { "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", "type": "string" }, "reason": { "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", "type": "string" } }, "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", "properties": { "causes": { "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" }, "type": "array", "x-kubernetes-list-type": "atomic" }, "group": { "description": "The group attribute of the resource associated with the status StatusReason.", "type": "string" }, "kind": { "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", "type": "string" }, "retryAfterSeconds": { "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", "format": "int32", "type": "integer" }, "uid": { "description": "UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids", "type": "string" } }, "type": "object" }, "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "format": "date-time", "type": "string" }, "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { "description": "Event represents a single event to a watched resource.", "properties": { "object": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context." }, "type": { "type": "string" } }, "required": [ "type", "object" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "", "kind": "WatchEvent", "version": "v1" }, { "group": "admission.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "admission.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "admissionregistration.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "admissionregistration.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "admissionregistration.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "apiextensions.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "apiextensions.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "apiregistration.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "apiregistration.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "apps", "kind": "WatchEvent", "version": "v1" }, { "group": "apps", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "apps", "kind": "WatchEvent", "version": "v1beta2" }, { "group": "authentication.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "authentication.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "authentication.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "authorization.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "authorization.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "autoscaling", "kind": "WatchEvent", "version": "v1" }, { "group": "autoscaling", "kind": "WatchEvent", "version": "v2" }, { "group": "autoscaling", "kind": "WatchEvent", "version": "v2beta1" }, { "group": "autoscaling", "kind": "WatchEvent", "version": "v2beta2" }, { "group": "batch", "kind": "WatchEvent", "version": "v1" }, { "group": "batch", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "certificates.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "certificates.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "certificates.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "coordination.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "coordination.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "coordination.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "discovery.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "discovery.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "events.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "events.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "extensions", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "WatchEvent", "version": "v1beta2" }, { "group": "flowcontrol.apiserver.k8s.io", "kind": "WatchEvent", "version": "v1beta3" }, { "group": "imagepolicy.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "internal.apiserver.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "networking.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "networking.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "networking.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "node.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "node.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "node.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "policy", "kind": "WatchEvent", "version": "v1" }, { "group": "policy", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "rbac.authorization.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "rbac.authorization.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "rbac.authorization.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "resource.k8s.io", "kind": "WatchEvent", "version": "v1alpha3" }, { "group": "scheduling.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "scheduling.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "scheduling.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "storage.k8s.io", "kind": "WatchEvent", "version": "v1" }, { "group": "storage.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" }, { "group": "storage.k8s.io", "kind": "WatchEvent", "version": "v1beta1" }, { "group": "storagemigration.k8s.io", "kind": "WatchEvent", "version": "v1alpha1" } ] }, "io.k8s.apimachinery.pkg.runtime.RawExtension": { "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package:\n\n\ttype MyAPIObject struct {\n\t\truntime.TypeMeta `json:\",inline\"`\n\t\tMyPlugin runtime.Object `json:\"myPlugin\"`\n\t}\n\n\ttype PluginA struct {\n\t\tAOption string `json:\"aOption\"`\n\t}\n\n// External package:\n\n\ttype MyAPIObject struct {\n\t\truntime.TypeMeta `json:\",inline\"`\n\t\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n\t}\n\n\ttype PluginA struct {\n\t\tAOption string `json:\"aOption\"`\n\t}\n\n// On the wire, the JSON will look something like this:\n\n\t{\n\t\t\"kind\":\"MyAPIObject\",\n\t\t\"apiVersion\":\"v1\",\n\t\t\"myPlugin\": {\n\t\t\t\"kind\":\"PluginA\",\n\t\t\t\"aOption\":\"foo\",\n\t\t},\n\t}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", "type": "object" }, "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { "description": "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", "format": "int-or-string", "type": "string" }, "io.k8s.apimachinery.pkg.version.Info": { "description": "Info contains versioning information. how we'll want to distribute that information.", "properties": { "buildDate": { "type": "string" }, "compiler": { "type": "string" }, "gitCommit": { "type": "string" }, "gitTreeState": { "type": "string" }, "gitVersion": { "type": "string" }, "goVersion": { "type": "string" }, "major": { "type": "string" }, "minor": { "type": "string" }, "platform": { "type": "string" } }, "required": [ "major", "minor", "gitVersion", "gitCommit", "gitTreeState", "buildDate", "goVersion", "compiler", "platform" ], "type": "object" }, "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", "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's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec", "description": "Spec contains information for locating and communicating with a server" }, "status": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus", "description": "Status contains derived information about an API server" } }, "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } ] }, "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { "description": "APIServiceCondition describes the state of an APIService at a particular point", "properties": { "lastTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", "description": "Last time the condition transitioned from one status to another." }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "description": "Status is the status of the condition. Can be True, False, Unknown.", "type": "string" }, "type": { "description": "Type is the type of the condition.", "type": "string" } }, "required": [ "type", "status" ], "type": "object" }, "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { "description": "APIServiceList is a list of APIService objects.", "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 APIService", "items": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" }, "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#metadata" } }, "required": [ "items" ], "type": "object", "x-kubernetes-group-version-kind": [ { "group": "apiregistration.k8s.io", "kind": "APIServiceList", "version": "v1" } ] }, "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", "properties": { "caBundle": { "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", "format": "byte", "type": "string", "x-kubernetes-list-type": "atomic" }, "group": { "description": "Group is the API group name this server hosts", "type": "string" }, "groupPriorityMinimum": { "description": "GroupPriorityMinimum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMinimum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", "format": "int32", "type": "integer" }, "insecureSkipTLSVerify": { "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", "type": "boolean" }, "service": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference", "description": "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled." }, "version": { "description": "Version is the API version this server hosts. For example, \"v1\"", "type": "string" }, "versionPriority": { "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", "format": "int32", "type": "integer" } }, "required": [ "groupPriorityMinimum", "versionPriority" ], "type": "object" }, "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { "description": "APIServiceStatus contains derived information about an API server", "properties": { "conditions": { "description": "Current service state of apiService.", "items": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" }, "type": "array", "x-kubernetes-list-map-keys": [ "type" ], "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" } }, "type": "object" }, "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { "description": "ServiceReference holds a reference to Service.legacy.k8s.io", "properties": { "name": { "description": "Name is the name of the service", "type": "string" }, "namespace": { "description": "Namespace is the namespace of the service", "type": "string" }, "port": { "description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", "format": "int32", "type": "integer" } }, "type": "object" } }, "info": { "title": "Kubernetes", "version": "unversioned" }, "parameters": { "allowWatchBookmarks-HC2hJt-J": { "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 }, "body-2Y1dVQaQ": { "in": "body", "name": "body", "schema": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" } }, "body-78PwaGsr": { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" } }, "command-Py3eQybp": { "description": "Command is the remote command to execute. argv array. Not executed within a shell.", "in": "query", "name": "command", "type": "string", "uniqueItems": true }, "container-1GeXxFDC": { "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", "in": "query", "name": "container", "type": "string", "uniqueItems": true }, "container-_Q-EJ3nR": { "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", "in": "query", "name": "container", "type": "string", "uniqueItems": true }, "container-i5dOmRiM": { "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", "in": "query", "name": "container", "type": "string", "uniqueItems": true }, "continue-QfD61s0i": { "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 }, "fieldManager-7c6nTn1T": { "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 }, "fieldManager-Qy4HdaTW": { "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 }, "fieldSelector-xIcQKXFG": { "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", "in": "query", "name": "fieldSelector", "type": "string", "uniqueItems": true }, "follow-9OIXh_2R": { "description": "Follow the log stream of the pod. Defaults to false.", "in": "query", "name": "follow", "type": "boolean", "uniqueItems": true }, "force-tOGGb0Yi": { "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 }, "gracePeriodSeconds--K5HaBOS": { "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 }, "insecureSkipTLSVerifyBackend-gM00jVbe": { "description": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", "in": "query", "name": "insecureSkipTLSVerifyBackend", "type": "boolean", "uniqueItems": true }, "labelSelector-5Zw57w4C": { "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", "in": "query", "name": "labelSelector", "type": "string", "uniqueItems": true }, "limit-1NfNmdNH": { "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 }, "limitBytes-zwd1RXuc": { "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", "in": "query", "name": "limitBytes", "type": "integer", "uniqueItems": true }, "logpath-Noq7euwC": { "description": "path to the log", "in": "path", "name": "logpath", "required": true, "type": "string", "uniqueItems": true }, "namespace-vgWSWtn3": { "description": "object name and auth scope, such as for teams and projects", "in": "path", "name": "namespace", "required": true, "type": "string", "uniqueItems": true }, "orphanDependents-uRB25kX5": { "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 }, "path-QCf0eosM": { "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", "in": "query", "name": "path", "type": "string", "uniqueItems": true }, "path-oPbzgLUj": { "description": "Path is the URL path to use for the current proxy request to pod.", "in": "query", "name": "path", "type": "string", "uniqueItems": true }, "path-rFDtV0x9": { "description": "Path is the URL path to use for the current proxy request to node.", "in": "query", "name": "path", "type": "string", "uniqueItems": true }, "path-z6Ciiujn": { "description": "path to the resource", "in": "path", "name": "path", "required": true, "type": "string", "uniqueItems": true }, "ports-91KROJmm": { "description": "List of ports to forward Required when using WebSockets", "in": "query", "name": "ports", "type": "integer", "uniqueItems": true }, "pretty-tJGM1-ng": { "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 }, "previous-1jxDPu3y": { "description": "Return previous terminated container logs. Defaults to false.", "in": "query", "name": "previous", "type": "boolean", "uniqueItems": true }, "propagationPolicy-6jk3prlO": { "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 }, "resourceVersion-5WAnf1kx": { "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 }, "resourceVersionMatch-t8XhRHeC": { "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 }, "sendInitialEvents-rLXlEK_k": { "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 }, "sinceSeconds-vE2NLdnP": { "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", "in": "query", "name": "sinceSeconds", "type": "integer", "uniqueItems": true }, "stderr-26jJhFUR": { "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", "in": "query", "name": "stderr", "type": "boolean", "uniqueItems": true }, "stderr-W_1TNlWc": { "description": "Redirect the standard error stream of the pod for this call.", "in": "query", "name": "stderr", "type": "boolean", "uniqueItems": true }, "stdin-PSzNhyUC": { "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", "in": "query", "name": "stdin", "type": "boolean", "uniqueItems": true }, "stdin-sEFnN3IS": { "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", "in": "query", "name": "stdin", "type": "boolean", "uniqueItems": true }, "stdout--EZLRwV1": { "description": "Redirect the standard output stream of the pod for this call.", "in": "query", "name": "stdout", "type": "boolean", "uniqueItems": true }, "stdout-005YMKE6": { "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", "in": "query", "name": "stdout", "type": "boolean", "uniqueItems": true }, "tailLines-2fRTNzbP": { "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", "in": "query", "name": "tailLines", "type": "integer", "uniqueItems": true }, "timeoutSeconds-yvYezaOC": { "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 }, "timestamps-c17fW1w_": { "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", "in": "query", "name": "timestamps", "type": "boolean", "uniqueItems": true }, "tty-g7MlET_l": { "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", "in": "query", "name": "tty", "type": "boolean", "uniqueItems": true }, "tty-s0flW37O": { "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", "in": "query", "name": "tty", "type": "boolean", "uniqueItems": true }, "watch-XNNPZGbK": { "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 } }, "paths": { "/.well-known/openid-configuration/": { "get": { "description": "get service account issuer OpenID configuration, also known as the 'OIDC discovery doc'", "operationId": "getServiceAccountIssuerOpenIDConfiguration", "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "WellKnown" ] } }, "/api/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available API versions", "operationId": "getCoreAPIVersions", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core" ] } }, "/api/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getCoreV1APIResources", "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": [ "core_v1" ] } }, "/api/v1/componentstatuses": { "get": { "consumes": [ "*/*" ], "description": "list objects of kind ComponentStatus", "operationId": "listCoreV1ComponentStatus", "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.core.v1.ComponentStatusList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ComponentStatus", "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" } ] }, "/api/v1/componentstatuses/{name}": { "get": { "consumes": [ "*/*" ], "description": "read the specified ComponentStatus", "operationId": "readCoreV1ComponentStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "ComponentStatus", "version": "v1" } }, "parameters": [ { "description": "name of the ComponentStatus", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ] }, "/api/v1/configmaps": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ConfigMap", "operationId": "listCoreV1ConfigMapForAllNamespaces", "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.core.v1.ConfigMapList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "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" } ] }, "/api/v1/endpoints": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Endpoints", "operationId": "listCoreV1EndpointsForAllNamespaces", "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.core.v1.EndpointsList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "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" } ] }, "/api/v1/events": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Event", "operationId": "listCoreV1EventForAllNamespaces", "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.core.v1.EventList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "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" } ] }, "/api/v1/limitranges": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind LimitRange", "operationId": "listCoreV1LimitRangeForAllNamespaces", "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.core.v1.LimitRangeList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "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" } ] }, "/api/v1/namespaces": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Namespace", "operationId": "listCoreV1Namespace", "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.core.v1.NamespaceList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Namespace", "operationId": "createCoreV1Namespace", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, { "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.core.v1.Namespace" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/bindings": { "parameters": [ { "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 }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Binding", "operationId": "createCoreV1NamespacedBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Binding", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/configmaps": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ConfigMap", "operationId": "deleteCoreV1CollectionNamespacedConfigMap", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ConfigMap", "operationId": "listCoreV1NamespacedConfigMap", "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.core.v1.ConfigMapList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ConfigMap", "operationId": "createCoreV1NamespacedConfigMap", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, { "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.core.v1.ConfigMap" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/configmaps/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ConfigMap", "operationId": "deleteCoreV1NamespacedConfigMap", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ConfigMap", "operationId": "readCoreV1NamespacedConfigMap", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "version": "v1" } }, "parameters": [ { "description": "name of the ConfigMap", "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 ConfigMap", "operationId": "patchCoreV1NamespacedConfigMap", "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.core.v1.ConfigMap" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ConfigMap", "operationId": "replaceCoreV1NamespacedConfigMap", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, { "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.core.v1.ConfigMap" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/endpoints": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Endpoints", "operationId": "deleteCoreV1CollectionNamespacedEndpoints", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Endpoints", "operationId": "listCoreV1NamespacedEndpoints", "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.core.v1.EndpointsList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create Endpoints", "operationId": "createCoreV1NamespacedEndpoints", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, { "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.core.v1.Endpoints" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/endpoints/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete Endpoints", "operationId": "deleteCoreV1NamespacedEndpoints", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Endpoints", "operationId": "readCoreV1NamespacedEndpoints", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "version": "v1" } }, "parameters": [ { "description": "name of the Endpoints", "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 Endpoints", "operationId": "patchCoreV1NamespacedEndpoints", "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.core.v1.Endpoints" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Endpoints", "operationId": "replaceCoreV1NamespacedEndpoints", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, { "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.core.v1.Endpoints" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/events": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Event", "operationId": "deleteCoreV1CollectionNamespacedEvent", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Event", "operationId": "listCoreV1NamespacedEvent", "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.core.v1.EventList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create an Event", "operationId": "createCoreV1NamespacedEvent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, { "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.core.v1.Event" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/events/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete an Event", "operationId": "deleteCoreV1NamespacedEvent", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Event", "operationId": "readCoreV1NamespacedEvent", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "version": "v1" } }, "parameters": [ { "description": "name of the Event", "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 Event", "operationId": "patchCoreV1NamespacedEvent", "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.core.v1.Event" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Event", "operationId": "replaceCoreV1NamespacedEvent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, { "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.core.v1.Event" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/limitranges": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of LimitRange", "operationId": "deleteCoreV1CollectionNamespacedLimitRange", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind LimitRange", "operationId": "listCoreV1NamespacedLimitRange", "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.core.v1.LimitRangeList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a LimitRange", "operationId": "createCoreV1NamespacedLimitRange", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, { "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.core.v1.LimitRange" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/limitranges/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a LimitRange", "operationId": "deleteCoreV1NamespacedLimitRange", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified LimitRange", "operationId": "readCoreV1NamespacedLimitRange", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "version": "v1" } }, "parameters": [ { "description": "name of the LimitRange", "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 LimitRange", "operationId": "patchCoreV1NamespacedLimitRange", "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.core.v1.LimitRange" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified LimitRange", "operationId": "replaceCoreV1NamespacedLimitRange", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, { "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.core.v1.LimitRange" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PersistentVolumeClaim", "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PersistentVolumeClaim", "operationId": "listCoreV1NamespacedPersistentVolumeClaim", "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.core.v1.PersistentVolumeClaimList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PersistentVolumeClaim", "operationId": "createCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, { "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.core.v1.PersistentVolumeClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PersistentVolumeClaim", "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", "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.core.v1.PersistentVolumeClaim" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PersistentVolumeClaim", "operationId": "readCoreV1NamespacedPersistentVolumeClaim", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, "parameters": [ { "description": "name of the PersistentVolumeClaim", "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 PersistentVolumeClaim", "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", "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.core.v1.PersistentVolumeClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PersistentVolumeClaim", "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, { "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.core.v1.PersistentVolumeClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified PersistentVolumeClaim", "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, "parameters": [ { "description": "name of the PersistentVolumeClaim", "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 status of the specified PersistentVolumeClaim", "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", "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.core.v1.PersistentVolumeClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified PersistentVolumeClaim", "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, { "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.core.v1.PersistentVolumeClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Pod", "operationId": "deleteCoreV1CollectionNamespacedPod", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Pod", "operationId": "listCoreV1NamespacedPod", "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.core.v1.PodList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Pod", "operationId": "createCoreV1NamespacedPod", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, { "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.core.v1.Pod" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Pod", "operationId": "deleteCoreV1NamespacedPod", "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.core.v1.Pod" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Pod", "operationId": "readCoreV1NamespacedPod", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "parameters": [ { "description": "name of the Pod", "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 Pod", "operationId": "patchCoreV1NamespacedPod", "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.core.v1.Pod" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Pod", "operationId": "replaceCoreV1NamespacedPod", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, { "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.core.v1.Pod" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/attach": { "get": { "consumes": [ "*/*" ], "description": "connect GET requests to attach of Pod", "operationId": "connectCoreV1GetNamespacedPodAttach", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodAttachOptions", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/container-_Q-EJ3nR" }, { "description": "name of the PodAttachOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/stderr-26jJhFUR" }, { "$ref": "#/parameters/stdin-sEFnN3IS" }, { "$ref": "#/parameters/stdout-005YMKE6" }, { "$ref": "#/parameters/tty-g7MlET_l" } ], "post": { "consumes": [ "*/*" ], "description": "connect POST requests to attach of Pod", "operationId": "connectCoreV1PostNamespacedPodAttach", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodAttachOptions", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/binding": { "parameters": [ { "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 }, { "description": "name of the Binding", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create binding of a Pod", "operationId": "createCoreV1NamespacedPodBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Binding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Binding", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers": { "get": { "consumes": [ "*/*" ], "description": "read ephemeralcontainers of the specified Pod", "operationId": "readCoreV1NamespacedPodEphemeralcontainers", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "parameters": [ { "description": "name of the Pod", "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 ephemeralcontainers of the specified Pod", "operationId": "patchCoreV1NamespacedPodEphemeralcontainers", "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.core.v1.Pod" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace ephemeralcontainers of the specified Pod", "operationId": "replaceCoreV1NamespacedPodEphemeralcontainers", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, { "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.core.v1.Pod" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { "parameters": [ { "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 }, { "description": "name of the Eviction", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create eviction of a Pod", "operationId": "createCoreV1NamespacedPodEviction", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.Eviction" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.Eviction" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.Eviction" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.Eviction" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "Eviction", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/exec": { "get": { "consumes": [ "*/*" ], "description": "connect GET requests to exec of Pod", "operationId": "connectCoreV1GetNamespacedPodExec", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodExecOptions", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/command-Py3eQybp" }, { "$ref": "#/parameters/container-i5dOmRiM" }, { "description": "name of the PodExecOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/stderr-W_1TNlWc" }, { "$ref": "#/parameters/stdin-PSzNhyUC" }, { "$ref": "#/parameters/stdout--EZLRwV1" }, { "$ref": "#/parameters/tty-s0flW37O" } ], "post": { "consumes": [ "*/*" ], "description": "connect POST requests to exec of Pod", "operationId": "connectCoreV1PostNamespacedPodExec", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodExecOptions", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/log": { "get": { "consumes": [ "*/*" ], "description": "read log of the specified Pod", "operationId": "readCoreV1NamespacedPodLog", "produces": [ "text/plain", "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/container-1GeXxFDC" }, { "$ref": "#/parameters/follow-9OIXh_2R" }, { "$ref": "#/parameters/insecureSkipTLSVerifyBackend-gM00jVbe" }, { "$ref": "#/parameters/limitBytes-zwd1RXuc" }, { "description": "name of the Pod", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" }, { "$ref": "#/parameters/previous-1jxDPu3y" }, { "$ref": "#/parameters/sinceSeconds-vE2NLdnP" }, { "$ref": "#/parameters/tailLines-2fRTNzbP" }, { "$ref": "#/parameters/timestamps-c17fW1w_" } ] }, "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { "get": { "consumes": [ "*/*" ], "description": "connect GET requests to portforward of Pod", "operationId": "connectCoreV1GetNamespacedPodPortforward", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodPortForwardOptions", "version": "v1" } }, "parameters": [ { "description": "name of the PodPortForwardOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/ports-91KROJmm" } ], "post": { "consumes": [ "*/*" ], "description": "connect POST requests to portforward of Pod", "operationId": "connectCoreV1PostNamespacedPodPortforward", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodPortForwardOptions", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { "delete": { "consumes": [ "*/*" ], "description": "connect DELETE requests to proxy of Pod", "operationId": "connectCoreV1DeleteNamespacedPodProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "connect GET requests to proxy of Pod", "operationId": "connectCoreV1GetNamespacedPodProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "head": { "consumes": [ "*/*" ], "description": "connect HEAD requests to proxy of Pod", "operationId": "connectCoreV1HeadNamespacedPodProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "options": { "consumes": [ "*/*" ], "description": "connect OPTIONS requests to proxy of Pod", "operationId": "connectCoreV1OptionsNamespacedPodProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "parameters": [ { "description": "name of the PodProxyOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/path-oPbzgLUj" } ], "patch": { "consumes": [ "*/*" ], "description": "connect PATCH requests to proxy of Pod", "operationId": "connectCoreV1PatchNamespacedPodProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "post": { "consumes": [ "*/*" ], "description": "connect POST requests to proxy of Pod", "operationId": "connectCoreV1PostNamespacedPodProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "connect PUT requests to proxy of Pod", "operationId": "connectCoreV1PutNamespacedPodProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { "delete": { "consumes": [ "*/*" ], "description": "connect DELETE requests to proxy of Pod", "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "connect GET requests to proxy of Pod", "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "head": { "consumes": [ "*/*" ], "description": "connect HEAD requests to proxy of Pod", "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "options": { "consumes": [ "*/*" ], "description": "connect OPTIONS requests to proxy of Pod", "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "parameters": [ { "description": "name of the PodProxyOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/path-z6Ciiujn" }, { "$ref": "#/parameters/path-oPbzgLUj" } ], "patch": { "consumes": [ "*/*" ], "description": "connect PATCH requests to proxy of Pod", "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "post": { "consumes": [ "*/*" ], "description": "connect POST requests to proxy of Pod", "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "connect PUT requests to proxy of Pod", "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodProxyOptions", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/pods/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified Pod", "operationId": "readCoreV1NamespacedPodStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "parameters": [ { "description": "name of the Pod", "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 status of the specified Pod", "operationId": "patchCoreV1NamespacedPodStatus", "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.core.v1.Pod" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified Pod", "operationId": "replaceCoreV1NamespacedPodStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, { "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.core.v1.Pod" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Pod" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/podtemplates": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PodTemplate", "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PodTemplate", "operationId": "listCoreV1NamespacedPodTemplate", "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.core.v1.PodTemplateList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PodTemplate", "operationId": "createCoreV1NamespacedPodTemplate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, { "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.core.v1.PodTemplate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/podtemplates/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PodTemplate", "operationId": "deleteCoreV1NamespacedPodTemplate", "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.core.v1.PodTemplate" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PodTemplate", "operationId": "readCoreV1NamespacedPodTemplate", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "version": "v1" } }, "parameters": [ { "description": "name of the PodTemplate", "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 PodTemplate", "operationId": "patchCoreV1NamespacedPodTemplate", "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.core.v1.PodTemplate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PodTemplate", "operationId": "replaceCoreV1NamespacedPodTemplate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, { "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.core.v1.PodTemplate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/replicationcontrollers": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ReplicationController", "operationId": "deleteCoreV1CollectionNamespacedReplicationController", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ReplicationController", "operationId": "listCoreV1NamespacedReplicationController", "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.core.v1.ReplicationControllerList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ReplicationController", "operationId": "createCoreV1NamespacedReplicationController", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, { "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.core.v1.ReplicationController" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ReplicationController", "operationId": "deleteCoreV1NamespacedReplicationController", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ReplicationController", "operationId": "readCoreV1NamespacedReplicationController", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } }, "parameters": [ { "description": "name of the ReplicationController", "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 ReplicationController", "operationId": "patchCoreV1NamespacedReplicationController", "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.core.v1.ReplicationController" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ReplicationController", "operationId": "replaceCoreV1NamespacedReplicationController", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, { "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.core.v1.ReplicationController" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { "get": { "consumes": [ "*/*" ], "description": "read scale of the specified ReplicationController", "operationId": "readCoreV1NamespacedReplicationControllerScale", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "parameters": [ { "description": "name of the Scale", "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 scale of the specified ReplicationController", "operationId": "patchCoreV1NamespacedReplicationControllerScale", "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace scale of the specified ReplicationController", "operationId": "replaceCoreV1NamespacedReplicationControllerScale", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, { "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified ReplicationController", "operationId": "readCoreV1NamespacedReplicationControllerStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } }, "parameters": [ { "description": "name of the ReplicationController", "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 status of the specified ReplicationController", "operationId": "patchCoreV1NamespacedReplicationControllerStatus", "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.core.v1.ReplicationController" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified ReplicationController", "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, { "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.core.v1.ReplicationController" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/resourcequotas": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ResourceQuota", "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ResourceQuota", "operationId": "listCoreV1NamespacedResourceQuota", "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.core.v1.ResourceQuotaList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ResourceQuota", "operationId": "createCoreV1NamespacedResourceQuota", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, { "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.core.v1.ResourceQuota" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ResourceQuota", "operationId": "deleteCoreV1NamespacedResourceQuota", "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.core.v1.ResourceQuota" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ResourceQuota", "operationId": "readCoreV1NamespacedResourceQuota", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } }, "parameters": [ { "description": "name of the ResourceQuota", "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 ResourceQuota", "operationId": "patchCoreV1NamespacedResourceQuota", "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.core.v1.ResourceQuota" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ResourceQuota", "operationId": "replaceCoreV1NamespacedResourceQuota", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, { "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.core.v1.ResourceQuota" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified ResourceQuota", "operationId": "readCoreV1NamespacedResourceQuotaStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } }, "parameters": [ { "description": "name of the ResourceQuota", "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 status of the specified ResourceQuota", "operationId": "patchCoreV1NamespacedResourceQuotaStatus", "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.core.v1.ResourceQuota" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified ResourceQuota", "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, { "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.core.v1.ResourceQuota" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/secrets": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Secret", "operationId": "deleteCoreV1CollectionNamespacedSecret", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Secret", "operationId": "listCoreV1NamespacedSecret", "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.core.v1.SecretList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Secret", "operationId": "createCoreV1NamespacedSecret", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" } }, { "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.core.v1.Secret" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/secrets/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Secret", "operationId": "deleteCoreV1NamespacedSecret", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Secret", "operationId": "readCoreV1NamespacedSecret", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "version": "v1" } }, "parameters": [ { "description": "name of the Secret", "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 Secret", "operationId": "patchCoreV1NamespacedSecret", "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.core.v1.Secret" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Secret", "operationId": "replaceCoreV1NamespacedSecret", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" } }, { "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.core.v1.Secret" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Secret" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/serviceaccounts": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ServiceAccount", "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ServiceAccount", "operationId": "listCoreV1NamespacedServiceAccount", "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.core.v1.ServiceAccountList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ServiceAccount", "operationId": "createCoreV1NamespacedServiceAccount", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, { "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.core.v1.ServiceAccount" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ServiceAccount", "operationId": "deleteCoreV1NamespacedServiceAccount", "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.core.v1.ServiceAccount" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ServiceAccount", "operationId": "readCoreV1NamespacedServiceAccount", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "version": "v1" } }, "parameters": [ { "description": "name of the ServiceAccount", "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 ServiceAccount", "operationId": "patchCoreV1NamespacedServiceAccount", "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.core.v1.ServiceAccount" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ServiceAccount", "operationId": "replaceCoreV1NamespacedServiceAccount", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, { "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.core.v1.ServiceAccount" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/serviceaccounts/{name}/token": { "parameters": [ { "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 }, { "description": "name of the TokenRequest", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create token of a ServiceAccount", "operationId": "createCoreV1NamespacedServiceAccountToken", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authentication.k8s.io", "kind": "TokenRequest", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/services": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Service", "operationId": "deleteCoreV1CollectionNamespacedService", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Service", "operationId": "listCoreV1NamespacedService", "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.core.v1.ServiceList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Service", "operationId": "createCoreV1NamespacedService", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, { "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.core.v1.Service" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/services/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Service", "operationId": "deleteCoreV1NamespacedService", "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.core.v1.Service" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Service", "operationId": "readCoreV1NamespacedService", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } }, "parameters": [ { "description": "name of the Service", "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 Service", "operationId": "patchCoreV1NamespacedService", "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.core.v1.Service" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Service", "operationId": "replaceCoreV1NamespacedService", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, { "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.core.v1.Service" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/services/{name}/proxy": { "delete": { "consumes": [ "*/*" ], "description": "connect DELETE requests to proxy of Service", "operationId": "connectCoreV1DeleteNamespacedServiceProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "connect GET requests to proxy of Service", "operationId": "connectCoreV1GetNamespacedServiceProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "head": { "consumes": [ "*/*" ], "description": "connect HEAD requests to proxy of Service", "operationId": "connectCoreV1HeadNamespacedServiceProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "options": { "consumes": [ "*/*" ], "description": "connect OPTIONS requests to proxy of Service", "operationId": "connectCoreV1OptionsNamespacedServiceProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "parameters": [ { "description": "name of the ServiceProxyOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/path-QCf0eosM" } ], "patch": { "consumes": [ "*/*" ], "description": "connect PATCH requests to proxy of Service", "operationId": "connectCoreV1PatchNamespacedServiceProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "post": { "consumes": [ "*/*" ], "description": "connect POST requests to proxy of Service", "operationId": "connectCoreV1PostNamespacedServiceProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "connect PUT requests to proxy of Service", "operationId": "connectCoreV1PutNamespacedServiceProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { "delete": { "consumes": [ "*/*" ], "description": "connect DELETE requests to proxy of Service", "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "connect GET requests to proxy of Service", "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "head": { "consumes": [ "*/*" ], "description": "connect HEAD requests to proxy of Service", "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "options": { "consumes": [ "*/*" ], "description": "connect OPTIONS requests to proxy of Service", "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "parameters": [ { "description": "name of the ServiceProxyOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/path-z6Ciiujn" }, { "$ref": "#/parameters/path-QCf0eosM" } ], "patch": { "consumes": [ "*/*" ], "description": "connect PATCH requests to proxy of Service", "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "post": { "consumes": [ "*/*" ], "description": "connect POST requests to proxy of Service", "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "connect PUT requests to proxy of Service", "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceProxyOptions", "version": "v1" } } }, "/api/v1/namespaces/{namespace}/services/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified Service", "operationId": "readCoreV1NamespacedServiceStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } }, "parameters": [ { "description": "name of the Service", "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 status of the specified Service", "operationId": "patchCoreV1NamespacedServiceStatus", "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.core.v1.Service" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified Service", "operationId": "replaceCoreV1NamespacedServiceStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, { "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.core.v1.Service" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Service" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "version": "v1" } } }, "/api/v1/namespaces/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Namespace", "operationId": "deleteCoreV1Namespace", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Namespace", "operationId": "readCoreV1Namespace", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } }, "parameters": [ { "description": "name of the Namespace", "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 Namespace", "operationId": "patchCoreV1Namespace", "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.core.v1.Namespace" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Namespace", "operationId": "replaceCoreV1Namespace", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, { "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.core.v1.Namespace" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } } }, "/api/v1/namespaces/{name}/finalize": { "parameters": [ { "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 }, { "description": "name of the Namespace", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "put": { "consumes": [ "*/*" ], "description": "replace finalize of the specified Namespace", "operationId": "replaceCoreV1NamespaceFinalize", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } } }, "/api/v1/namespaces/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified Namespace", "operationId": "readCoreV1NamespaceStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } }, "parameters": [ { "description": "name of the Namespace", "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 Namespace", "operationId": "patchCoreV1NamespaceStatus", "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.core.v1.Namespace" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified Namespace", "operationId": "replaceCoreV1NamespaceStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, { "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.core.v1.Namespace" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "version": "v1" } } }, "/api/v1/nodes": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Node", "operationId": "deleteCoreV1CollectionNode", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Node", "operationId": "listCoreV1Node", "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.core.v1.NodeList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Node", "operationId": "createCoreV1Node", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, { "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.core.v1.Node" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } } }, "/api/v1/nodes/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Node", "operationId": "deleteCoreV1Node", "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": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Node", "operationId": "readCoreV1Node", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } }, "parameters": [ { "description": "name of the Node", "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 Node", "operationId": "patchCoreV1Node", "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.core.v1.Node" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Node", "operationId": "replaceCoreV1Node", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, { "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.core.v1.Node" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } } }, "/api/v1/nodes/{name}/proxy": { "delete": { "consumes": [ "*/*" ], "description": "connect DELETE requests to proxy of Node", "operationId": "connectCoreV1DeleteNodeProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "connect GET requests to proxy of Node", "operationId": "connectCoreV1GetNodeProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "head": { "consumes": [ "*/*" ], "description": "connect HEAD requests to proxy of Node", "operationId": "connectCoreV1HeadNodeProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "options": { "consumes": [ "*/*" ], "description": "connect OPTIONS requests to proxy of Node", "operationId": "connectCoreV1OptionsNodeProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "parameters": [ { "description": "name of the NodeProxyOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/path-rFDtV0x9" } ], "patch": { "consumes": [ "*/*" ], "description": "connect PATCH requests to proxy of Node", "operationId": "connectCoreV1PatchNodeProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "post": { "consumes": [ "*/*" ], "description": "connect POST requests to proxy of Node", "operationId": "connectCoreV1PostNodeProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "connect PUT requests to proxy of Node", "operationId": "connectCoreV1PutNodeProxy", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } } }, "/api/v1/nodes/{name}/proxy/{path}": { "delete": { "consumes": [ "*/*" ], "description": "connect DELETE requests to proxy of Node", "operationId": "connectCoreV1DeleteNodeProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "connect GET requests to proxy of Node", "operationId": "connectCoreV1GetNodeProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "head": { "consumes": [ "*/*" ], "description": "connect HEAD requests to proxy of Node", "operationId": "connectCoreV1HeadNodeProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "options": { "consumes": [ "*/*" ], "description": "connect OPTIONS requests to proxy of Node", "operationId": "connectCoreV1OptionsNodeProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "parameters": [ { "description": "name of the NodeProxyOptions", "in": "path", "name": "name", "required": true, "type": "string", "uniqueItems": true }, { "$ref": "#/parameters/path-z6Ciiujn" }, { "$ref": "#/parameters/path-rFDtV0x9" } ], "patch": { "consumes": [ "*/*" ], "description": "connect PATCH requests to proxy of Node", "operationId": "connectCoreV1PatchNodeProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "post": { "consumes": [ "*/*" ], "description": "connect POST requests to proxy of Node", "operationId": "connectCoreV1PostNodeProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "connect PUT requests to proxy of Node", "operationId": "connectCoreV1PutNodeProxyWithPath", "produces": [ "*/*" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "", "kind": "NodeProxyOptions", "version": "v1" } } }, "/api/v1/nodes/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified Node", "operationId": "readCoreV1NodeStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } }, "parameters": [ { "description": "name of the Node", "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 Node", "operationId": "patchCoreV1NodeStatus", "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.core.v1.Node" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified Node", "operationId": "replaceCoreV1NodeStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, { "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.core.v1.Node" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.Node" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "version": "v1" } } }, "/api/v1/persistentvolumeclaims": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PersistentVolumeClaim", "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", "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.core.v1.PersistentVolumeClaimList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "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" } ] }, "/api/v1/persistentvolumes": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PersistentVolume", "operationId": "deleteCoreV1CollectionPersistentVolume", "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": [ "core_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PersistentVolume", "operationId": "listCoreV1PersistentVolume", "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.core.v1.PersistentVolumeList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PersistentVolume", "operationId": "createCoreV1PersistentVolume", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, { "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.core.v1.PersistentVolume" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } } }, "/api/v1/persistentvolumes/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PersistentVolume", "operationId": "deleteCoreV1PersistentVolume", "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.core.v1.PersistentVolume" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PersistentVolume", "operationId": "readCoreV1PersistentVolume", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } }, "parameters": [ { "description": "name of the PersistentVolume", "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 PersistentVolume", "operationId": "patchCoreV1PersistentVolume", "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.core.v1.PersistentVolume" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PersistentVolume", "operationId": "replaceCoreV1PersistentVolume", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, { "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.core.v1.PersistentVolume" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } } }, "/api/v1/persistentvolumes/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified PersistentVolume", "operationId": "readCoreV1PersistentVolumeStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } }, "parameters": [ { "description": "name of the PersistentVolume", "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 PersistentVolume", "operationId": "patchCoreV1PersistentVolumeStatus", "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.core.v1.PersistentVolume" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified PersistentVolume", "operationId": "replaceCoreV1PersistentVolumeStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, { "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.core.v1.PersistentVolume" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "version": "v1" } } }, "/api/v1/pods": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Pod", "operationId": "listCoreV1PodForAllNamespaces", "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.core.v1.PodList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "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" } ] }, "/api/v1/podtemplates": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PodTemplate", "operationId": "listCoreV1PodTemplateForAllNamespaces", "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.core.v1.PodTemplateList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "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" } ] }, "/api/v1/replicationcontrollers": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ReplicationController", "operationId": "listCoreV1ReplicationControllerForAllNamespaces", "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.core.v1.ReplicationControllerList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "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" } ] }, "/api/v1/resourcequotas": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ResourceQuota", "operationId": "listCoreV1ResourceQuotaForAllNamespaces", "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.core.v1.ResourceQuotaList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "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" } ] }, "/api/v1/secrets": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Secret", "operationId": "listCoreV1SecretForAllNamespaces", "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.core.v1.SecretList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "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" } ] }, "/api/v1/serviceaccounts": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ServiceAccount", "operationId": "listCoreV1ServiceAccountForAllNamespaces", "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.core.v1.ServiceAccountList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "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" } ] }, "/api/v1/services": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Service", "operationId": "listCoreV1ServiceForAllNamespaces", "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.core.v1.ServiceList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "core_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "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" } ] }, "/api/v1/watch/configmaps": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1ConfigMapListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "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" } ] }, "/api/v1/watch/endpoints": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1EndpointsListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "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" } ] }, "/api/v1/watch/events": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1EventListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "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" } ] }, "/api/v1/watch/limitranges": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1LimitRangeListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "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" } ] }, "/api/v1/watch/namespaces": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespaceList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/configmaps": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedConfigMapList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ConfigMap. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedConfigMap", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ConfigMap", "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 ConfigMap", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/endpoints": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedEndpointsList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Endpoints. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedEndpoints", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Endpoints", "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 Endpoints", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/events": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedEventList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/events/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedEvent", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Event", "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 Event", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/limitranges": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedLimitRangeList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind LimitRange. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedLimitRange", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "LimitRange", "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 LimitRange", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "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 PersistentVolumeClaim", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/pods": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedPodList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/pods/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Pod. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedPod", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "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 Pod", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/podtemplates": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedPodTemplateList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PodTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedPodTemplate", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "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 PodTemplate", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedReplicationControllerList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ReplicationController. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedReplicationController", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "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 ReplicationController", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/resourcequotas": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedResourceQuotaList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedResourceQuota", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "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 ResourceQuota", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/secrets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedSecretList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Secret. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedSecret", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "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 Secret", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedServiceAccountList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedServiceAccount", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "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 ServiceAccount", "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" } ] }, "/api/v1/watch/namespaces/{namespace}/services": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NamespacedServiceList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "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/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" } ] }, "/api/v1/watch/namespaces/{namespace}/services/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Service. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1NamespacedService", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "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 Service", "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" } ] }, "/api/v1/watch/namespaces/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Namespace. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1Namespace", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Namespace", "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 Namespace", "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" } ] }, "/api/v1/watch/nodes": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1NodeList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "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" } ] }, "/api/v1/watch/nodes/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Node. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1Node", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "Node", "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 Node", "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" } ] }, "/api/v1/watch/persistentvolumeclaims": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolumeClaim", "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" } ] }, "/api/v1/watch/persistentvolumes": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1PersistentVolumeList", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "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" } ] }, "/api/v1/watch/persistentvolumes/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoreV1PersistentVolume", "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": [ "core_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "", "kind": "PersistentVolume", "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 PersistentVolume", "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" } ] }, "/api/v1/watch/pods": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1PodListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Pod", "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" } ] }, "/api/v1/watch/podtemplates": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1PodTemplateListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "PodTemplate", "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" } ] }, "/api/v1/watch/replicationcontrollers": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ReplicationController", "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" } ] }, "/api/v1/watch/resourcequotas": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ResourceQuota", "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" } ] }, "/api/v1/watch/secrets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1SecretListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Secret", "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" } ] }, "/api/v1/watch/serviceaccounts": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "ServiceAccount", "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" } ] }, "/api/v1/watch/services": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoreV1ServiceListForAllNamespaces", "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": [ "core_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "", "kind": "Service", "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/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available API versions", "operationId": "getAPIVersions", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apis" ] } }, "/apis/admissionregistration.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getAdmissionregistrationAPIGroup", "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": [ "admissionregistration" ] } }, "/apis/admissionregistration.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAdmissionregistrationV1APIResources", "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": [ "admissionregistration_v1" ] } }, "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of MutatingWebhookConfiguration", "operationId": "deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration", "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": "MutatingWebhookConfiguration", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind MutatingWebhookConfiguration", "operationId": "listAdmissionregistrationV1MutatingWebhookConfiguration", "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.MutatingWebhookConfigurationList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "MutatingWebhookConfiguration", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a MutatingWebhookConfiguration", "operationId": "createAdmissionregistrationV1MutatingWebhookConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" } }, { "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.MutatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "MutatingWebhookConfiguration", "version": "v1" } } }, "/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a MutatingWebhookConfiguration", "operationId": "deleteAdmissionregistrationV1MutatingWebhookConfiguration", "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": "MutatingWebhookConfiguration", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified MutatingWebhookConfiguration", "operationId": "readAdmissionregistrationV1MutatingWebhookConfiguration", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "MutatingWebhookConfiguration", "version": "v1" } }, "parameters": [ { "description": "name of the MutatingWebhookConfiguration", "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 MutatingWebhookConfiguration", "operationId": "patchAdmissionregistrationV1MutatingWebhookConfiguration", "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.MutatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "MutatingWebhookConfiguration", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified MutatingWebhookConfiguration", "operationId": "replaceAdmissionregistrationV1MutatingWebhookConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" } }, { "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.MutatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "MutatingWebhookConfiguration", "version": "v1" } } }, "/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": [ "*/*" ], "description": "delete collection of ValidatingWebhookConfiguration", "operationId": "deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration", "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": "ValidatingWebhookConfiguration", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ValidatingWebhookConfiguration", "operationId": "listAdmissionregistrationV1ValidatingWebhookConfiguration", "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.ValidatingWebhookConfigurationList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingWebhookConfiguration", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ValidatingWebhookConfiguration", "operationId": "createAdmissionregistrationV1ValidatingWebhookConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" } }, { "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.ValidatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingWebhookConfiguration", "version": "v1" } } }, "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ValidatingWebhookConfiguration", "operationId": "deleteAdmissionregistrationV1ValidatingWebhookConfiguration", "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": "ValidatingWebhookConfiguration", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ValidatingWebhookConfiguration", "operationId": "readAdmissionregistrationV1ValidatingWebhookConfiguration", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingWebhookConfiguration", "version": "v1" } }, "parameters": [ { "description": "name of the ValidatingWebhookConfiguration", "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 ValidatingWebhookConfiguration", "operationId": "patchAdmissionregistrationV1ValidatingWebhookConfiguration", "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.ValidatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingWebhookConfiguration", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ValidatingWebhookConfiguration", "operationId": "replaceAdmissionregistrationV1ValidatingWebhookConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" } }, { "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.ValidatingWebhookConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingWebhookConfiguration", "version": "v1" } } }, "/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAdmissionregistrationV1MutatingWebhookConfigurationList", "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": "MutatingWebhookConfiguration", "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/mutatingwebhookconfigurations/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAdmissionregistrationV1MutatingWebhookConfiguration", "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": "MutatingWebhookConfiguration", "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 MutatingWebhookConfiguration", "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/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": [ "*/*" ], "description": "watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfigurationList", "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": "ValidatingWebhookConfiguration", "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/validatingwebhookconfigurations/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAdmissionregistrationV1ValidatingWebhookConfiguration", "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": "ValidatingWebhookConfiguration", "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 ValidatingWebhookConfiguration", "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/v1alpha1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAdmissionregistrationV1alpha1APIResources", "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": [ "admissionregistration_v1alpha1" ] } }, "/apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ValidatingAdmissionPolicy", "operationId": "deleteAdmissionregistrationV1alpha1CollectionValidatingAdmissionPolicy", "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_v1alpha1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ValidatingAdmissionPolicy", "operationId": "listAdmissionregistrationV1alpha1ValidatingAdmissionPolicy", "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.v1alpha1.ValidatingAdmissionPolicyList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ValidatingAdmissionPolicy", "operationId": "createAdmissionregistrationV1alpha1ValidatingAdmissionPolicy", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } } }, "/apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ValidatingAdmissionPolicy", "operationId": "deleteAdmissionregistrationV1alpha1ValidatingAdmissionPolicy", "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_v1alpha1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ValidatingAdmissionPolicy", "operationId": "readAdmissionregistrationV1alpha1ValidatingAdmissionPolicy", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } }, "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": "patchAdmissionregistrationV1alpha1ValidatingAdmissionPolicy", "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.v1alpha1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ValidatingAdmissionPolicy", "operationId": "replaceAdmissionregistrationV1alpha1ValidatingAdmissionPolicy", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } } }, "/apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified ValidatingAdmissionPolicy", "operationId": "readAdmissionregistrationV1alpha1ValidatingAdmissionPolicyStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } }, "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": "patchAdmissionregistrationV1alpha1ValidatingAdmissionPolicyStatus", "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.v1alpha1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified ValidatingAdmissionPolicy", "operationId": "replaceAdmissionregistrationV1alpha1ValidatingAdmissionPolicyStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1alpha1" } } }, "/apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ValidatingAdmissionPolicyBinding", "operationId": "deleteAdmissionregistrationV1alpha1CollectionValidatingAdmissionPolicyBinding", "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_v1alpha1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ValidatingAdmissionPolicyBinding", "operationId": "listAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBinding", "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.v1alpha1.ValidatingAdmissionPolicyBindingList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ValidatingAdmissionPolicyBinding", "operationId": "createAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } } }, "/apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ValidatingAdmissionPolicyBinding", "operationId": "deleteAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBinding", "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_v1alpha1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ValidatingAdmissionPolicyBinding", "operationId": "readAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBinding", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } }, "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": "patchAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBinding", "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.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ValidatingAdmissionPolicyBinding", "operationId": "replaceAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.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.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1alpha1" } } }, "/apis/admissionregistration.k8s.io/v1alpha1/watch/validatingadmissionpolicies": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ValidatingAdmissionPolicy. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAdmissionregistrationV1alpha1ValidatingAdmissionPolicyList", "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_v1alpha1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "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/admissionregistration.k8s.io/v1alpha1/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": "watchAdmissionregistrationV1alpha1ValidatingAdmissionPolicy", "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_v1alpha1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "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 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/v1alpha1/watch/validatingadmissionpolicybindings": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ValidatingAdmissionPolicyBinding. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBindingList", "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_v1alpha1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "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/admissionregistration.k8s.io/v1alpha1/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": "watchAdmissionregistrationV1alpha1ValidatingAdmissionPolicyBinding", "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_v1alpha1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "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 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/v1beta1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAdmissionregistrationV1beta1APIResources", "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": [ "admissionregistration_v1beta1" ] } }, "/apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ValidatingAdmissionPolicy", "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingAdmissionPolicy", "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_v1beta1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ValidatingAdmissionPolicy", "operationId": "listAdmissionregistrationV1beta1ValidatingAdmissionPolicy", "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.v1beta1.ValidatingAdmissionPolicyList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ValidatingAdmissionPolicy", "operationId": "createAdmissionregistrationV1beta1ValidatingAdmissionPolicy", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.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.v1beta1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } } }, "/apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ValidatingAdmissionPolicy", "operationId": "deleteAdmissionregistrationV1beta1ValidatingAdmissionPolicy", "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_v1beta1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ValidatingAdmissionPolicy", "operationId": "readAdmissionregistrationV1beta1ValidatingAdmissionPolicy", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "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": "patchAdmissionregistrationV1beta1ValidatingAdmissionPolicy", "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.v1beta1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ValidatingAdmissionPolicy", "operationId": "replaceAdmissionregistrationV1beta1ValidatingAdmissionPolicy", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.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.v1beta1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } } }, "/apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified ValidatingAdmissionPolicy", "operationId": "readAdmissionregistrationV1beta1ValidatingAdmissionPolicyStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "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": "patchAdmissionregistrationV1beta1ValidatingAdmissionPolicyStatus", "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.v1beta1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified ValidatingAdmissionPolicy", "operationId": "replaceAdmissionregistrationV1beta1ValidatingAdmissionPolicyStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.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.v1beta1.ValidatingAdmissionPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } } }, "/apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ValidatingAdmissionPolicyBinding", "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingAdmissionPolicyBinding", "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_v1beta1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ValidatingAdmissionPolicyBinding", "operationId": "listAdmissionregistrationV1beta1ValidatingAdmissionPolicyBinding", "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.v1beta1.ValidatingAdmissionPolicyBindingList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ValidatingAdmissionPolicyBinding", "operationId": "createAdmissionregistrationV1beta1ValidatingAdmissionPolicyBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.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.v1beta1.ValidatingAdmissionPolicyBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } } }, "/apis/admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ValidatingAdmissionPolicyBinding", "operationId": "deleteAdmissionregistrationV1beta1ValidatingAdmissionPolicyBinding", "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_v1beta1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ValidatingAdmissionPolicyBinding", "operationId": "readAdmissionregistrationV1beta1ValidatingAdmissionPolicyBinding", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } }, "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": "patchAdmissionregistrationV1beta1ValidatingAdmissionPolicyBinding", "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.v1beta1.ValidatingAdmissionPolicyBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ValidatingAdmissionPolicyBinding", "operationId": "replaceAdmissionregistrationV1beta1ValidatingAdmissionPolicyBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.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.v1beta1.ValidatingAdmissionPolicyBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "admissionregistration_v1beta1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } } }, "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingadmissionpolicies": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ValidatingAdmissionPolicy. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAdmissionregistrationV1beta1ValidatingAdmissionPolicyList", "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_v1beta1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "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/v1beta1/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": "watchAdmissionregistrationV1beta1ValidatingAdmissionPolicy", "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_v1beta1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicy", "version": "v1beta1" } }, "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/v1beta1/watch/validatingadmissionpolicybindings": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ValidatingAdmissionPolicyBinding. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAdmissionregistrationV1beta1ValidatingAdmissionPolicyBindingList", "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_v1beta1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } }, "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/v1beta1/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": "watchAdmissionregistrationV1beta1ValidatingAdmissionPolicyBinding", "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_v1beta1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "admissionregistration.k8s.io", "kind": "ValidatingAdmissionPolicyBinding", "version": "v1beta1" } }, "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/apiextensions.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getApiextensionsAPIGroup", "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": [ "apiextensions" ] } }, "/apis/apiextensions.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getApiextensionsV1APIResources", "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": [ "apiextensions_v1" ] } }, "/apis/apiextensions.k8s.io/v1/customresourcedefinitions": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of CustomResourceDefinition", "operationId": "deleteApiextensionsV1CollectionCustomResourceDefinition", "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": [ "apiextensions_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CustomResourceDefinition", "operationId": "listApiextensionsV1CustomResourceDefinition", "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.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a CustomResourceDefinition", "operationId": "createApiextensionsV1CustomResourceDefinition", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, { "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.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } } }, "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a CustomResourceDefinition", "operationId": "deleteApiextensionsV1CustomResourceDefinition", "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": [ "apiextensions_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified CustomResourceDefinition", "operationId": "readApiextensionsV1CustomResourceDefinition", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } }, "parameters": [ { "description": "name of the CustomResourceDefinition", "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 CustomResourceDefinition", "operationId": "patchApiextensionsV1CustomResourceDefinition", "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.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified CustomResourceDefinition", "operationId": "replaceApiextensionsV1CustomResourceDefinition", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, { "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.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } } }, "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified CustomResourceDefinition", "operationId": "readApiextensionsV1CustomResourceDefinitionStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } }, "parameters": [ { "description": "name of the CustomResourceDefinition", "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 CustomResourceDefinition", "operationId": "patchApiextensionsV1CustomResourceDefinitionStatus", "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.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified CustomResourceDefinition", "operationId": "replaceApiextensionsV1CustomResourceDefinitionStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, { "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.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiextensions_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "version": "v1" } } }, "/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchApiextensionsV1CustomResourceDefinitionList", "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": [ "apiextensions_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "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/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchApiextensionsV1CustomResourceDefinition", "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": [ "apiextensions_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apiextensions.k8s.io", "kind": "CustomResourceDefinition", "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 CustomResourceDefinition", "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/apiregistration.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getApiregistrationAPIGroup", "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": [ "apiregistration" ] } }, "/apis/apiregistration.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getApiregistrationV1APIResources", "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": [ "apiregistration_v1" ] } }, "/apis/apiregistration.k8s.io/v1/apiservices": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of APIService", "operationId": "deleteApiregistrationV1CollectionAPIService", "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": [ "apiregistration_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind APIService", "operationId": "listApiregistrationV1APIService", "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.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create an APIService", "operationId": "createApiregistrationV1APIService", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, { "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.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } } }, "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete an APIService", "operationId": "deleteApiregistrationV1APIService", "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": [ "apiregistration_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified APIService", "operationId": "readApiregistrationV1APIService", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } }, "parameters": [ { "description": "name of the APIService", "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 APIService", "operationId": "patchApiregistrationV1APIService", "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.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified APIService", "operationId": "replaceApiregistrationV1APIService", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, { "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.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } } }, "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified APIService", "operationId": "readApiregistrationV1APIServiceStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } }, "parameters": [ { "description": "name of the APIService", "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 APIService", "operationId": "patchApiregistrationV1APIServiceStatus", "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.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified APIService", "operationId": "replaceApiregistrationV1APIServiceStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, { "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.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apiregistration_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "version": "v1" } } }, "/apis/apiregistration.k8s.io/v1/watch/apiservices": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchApiregistrationV1APIServiceList", "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": [ "apiregistration_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "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/apiregistration.k8s.io/v1/watch/apiservices/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind APIService. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchApiregistrationV1APIService", "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": [ "apiregistration_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apiregistration.k8s.io", "kind": "APIService", "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 APIService", "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/apps/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getAppsAPIGroup", "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": [ "apps" ] } }, "/apis/apps/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAppsV1APIResources", "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": [ "apps_v1" ] } }, "/apis/apps/v1/controllerrevisions": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ControllerRevision", "operationId": "listAppsV1ControllerRevisionForAllNamespaces", "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.apps.v1.ControllerRevisionList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "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/apps/v1/daemonsets": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind DaemonSet", "operationId": "listAppsV1DaemonSetForAllNamespaces", "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.apps.v1.DaemonSetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "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/apps/v1/deployments": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Deployment", "operationId": "listAppsV1DeploymentForAllNamespaces", "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.apps.v1.DeploymentList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "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/apps/v1/namespaces/{namespace}/controllerrevisions": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ControllerRevision", "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", "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": [ "apps_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ControllerRevision", "operationId": "listAppsV1NamespacedControllerRevision", "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.apps.v1.ControllerRevisionList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ControllerRevision", "operationId": "createAppsV1NamespacedControllerRevision", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, { "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.apps.v1.ControllerRevision" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ControllerRevision", "operationId": "deleteAppsV1NamespacedControllerRevision", "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": [ "apps_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ControllerRevision", "operationId": "readAppsV1NamespacedControllerRevision", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "version": "v1" } }, "parameters": [ { "description": "name of the ControllerRevision", "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 ControllerRevision", "operationId": "patchAppsV1NamespacedControllerRevision", "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.apps.v1.ControllerRevision" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ControllerRevision", "operationId": "replaceAppsV1NamespacedControllerRevision", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, { "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.apps.v1.ControllerRevision" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/daemonsets": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of DaemonSet", "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", "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": [ "apps_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind DaemonSet", "operationId": "listAppsV1NamespacedDaemonSet", "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.apps.v1.DaemonSetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a DaemonSet", "operationId": "createAppsV1NamespacedDaemonSet", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, { "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.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a DaemonSet", "operationId": "deleteAppsV1NamespacedDaemonSet", "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": [ "apps_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified DaemonSet", "operationId": "readAppsV1NamespacedDaemonSet", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } }, "parameters": [ { "description": "name of the DaemonSet", "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 DaemonSet", "operationId": "patchAppsV1NamespacedDaemonSet", "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.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified DaemonSet", "operationId": "replaceAppsV1NamespacedDaemonSet", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, { "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.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified DaemonSet", "operationId": "readAppsV1NamespacedDaemonSetStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } }, "parameters": [ { "description": "name of the DaemonSet", "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 status of the specified DaemonSet", "operationId": "patchAppsV1NamespacedDaemonSetStatus", "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.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified DaemonSet", "operationId": "replaceAppsV1NamespacedDaemonSetStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, { "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.apps.v1.DaemonSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/deployments": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Deployment", "operationId": "deleteAppsV1CollectionNamespacedDeployment", "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": [ "apps_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Deployment", "operationId": "listAppsV1NamespacedDeployment", "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.apps.v1.DeploymentList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Deployment", "operationId": "createAppsV1NamespacedDeployment", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, { "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.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Deployment", "operationId": "deleteAppsV1NamespacedDeployment", "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": [ "apps_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Deployment", "operationId": "readAppsV1NamespacedDeployment", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } }, "parameters": [ { "description": "name of the Deployment", "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 Deployment", "operationId": "patchAppsV1NamespacedDeployment", "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.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Deployment", "operationId": "replaceAppsV1NamespacedDeployment", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, { "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.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { "get": { "consumes": [ "*/*" ], "description": "read scale of the specified Deployment", "operationId": "readAppsV1NamespacedDeploymentScale", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "parameters": [ { "description": "name of the Scale", "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 scale of the specified Deployment", "operationId": "patchAppsV1NamespacedDeploymentScale", "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace scale of the specified Deployment", "operationId": "replaceAppsV1NamespacedDeploymentScale", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, { "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified Deployment", "operationId": "readAppsV1NamespacedDeploymentStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } }, "parameters": [ { "description": "name of the Deployment", "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 status of the specified Deployment", "operationId": "patchAppsV1NamespacedDeploymentStatus", "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.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified Deployment", "operationId": "replaceAppsV1NamespacedDeploymentStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, { "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.apps.v1.Deployment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/replicasets": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ReplicaSet", "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", "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": [ "apps_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ReplicaSet", "operationId": "listAppsV1NamespacedReplicaSet", "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.apps.v1.ReplicaSetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ReplicaSet", "operationId": "createAppsV1NamespacedReplicaSet", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, { "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.apps.v1.ReplicaSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ReplicaSet", "operationId": "deleteAppsV1NamespacedReplicaSet", "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": [ "apps_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ReplicaSet", "operationId": "readAppsV1NamespacedReplicaSet", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } }, "parameters": [ { "description": "name of the ReplicaSet", "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 ReplicaSet", "operationId": "patchAppsV1NamespacedReplicaSet", "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.apps.v1.ReplicaSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ReplicaSet", "operationId": "replaceAppsV1NamespacedReplicaSet", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, { "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.apps.v1.ReplicaSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { "get": { "consumes": [ "*/*" ], "description": "read scale of the specified ReplicaSet", "operationId": "readAppsV1NamespacedReplicaSetScale", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "parameters": [ { "description": "name of the Scale", "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 scale of the specified ReplicaSet", "operationId": "patchAppsV1NamespacedReplicaSetScale", "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace scale of the specified ReplicaSet", "operationId": "replaceAppsV1NamespacedReplicaSetScale", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, { "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified ReplicaSet", "operationId": "readAppsV1NamespacedReplicaSetStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } }, "parameters": [ { "description": "name of the ReplicaSet", "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 status of the specified ReplicaSet", "operationId": "patchAppsV1NamespacedReplicaSetStatus", "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.apps.v1.ReplicaSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified ReplicaSet", "operationId": "replaceAppsV1NamespacedReplicaSetStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, { "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.apps.v1.ReplicaSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/statefulsets": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of StatefulSet", "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", "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": [ "apps_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind StatefulSet", "operationId": "listAppsV1NamespacedStatefulSet", "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.apps.v1.StatefulSetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a StatefulSet", "operationId": "createAppsV1NamespacedStatefulSet", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, { "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.apps.v1.StatefulSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a StatefulSet", "operationId": "deleteAppsV1NamespacedStatefulSet", "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": [ "apps_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified StatefulSet", "operationId": "readAppsV1NamespacedStatefulSet", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } }, "parameters": [ { "description": "name of the StatefulSet", "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 StatefulSet", "operationId": "patchAppsV1NamespacedStatefulSet", "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.apps.v1.StatefulSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified StatefulSet", "operationId": "replaceAppsV1NamespacedStatefulSet", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, { "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.apps.v1.StatefulSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { "get": { "consumes": [ "*/*" ], "description": "read scale of the specified StatefulSet", "operationId": "readAppsV1NamespacedStatefulSetScale", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "parameters": [ { "description": "name of the Scale", "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 scale of the specified StatefulSet", "operationId": "patchAppsV1NamespacedStatefulSetScale", "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace scale of the specified StatefulSet", "operationId": "replaceAppsV1NamespacedStatefulSetScale", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, { "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.autoscaling.v1.Scale" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "Scale", "version": "v1" } } }, "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified StatefulSet", "operationId": "readAppsV1NamespacedStatefulSetStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } }, "parameters": [ { "description": "name of the StatefulSet", "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 status of the specified StatefulSet", "operationId": "patchAppsV1NamespacedStatefulSetStatus", "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.apps.v1.StatefulSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified StatefulSet", "operationId": "replaceAppsV1NamespacedStatefulSetStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, { "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.apps.v1.StatefulSet" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "version": "v1" } } }, "/apis/apps/v1/replicasets": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ReplicaSet", "operationId": "listAppsV1ReplicaSetForAllNamespaces", "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.apps.v1.ReplicaSetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "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/apps/v1/statefulsets": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind StatefulSet", "operationId": "listAppsV1StatefulSetForAllNamespaces", "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.apps.v1.StatefulSetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "apps_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "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/apps/v1/watch/controllerrevisions": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "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/apps/v1/watch/daemonsets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1DaemonSetListForAllNamespaces", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "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/apps/v1/watch/deployments": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1DeploymentListForAllNamespaces", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "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/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1NamespacedControllerRevisionList", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "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/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/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAppsV1NamespacedControllerRevision", "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": [ "apps_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ControllerRevision", "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 ControllerRevision", "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/apps/v1/watch/namespaces/{namespace}/daemonsets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1NamespacedDaemonSetList", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "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/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/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind DaemonSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAppsV1NamespacedDaemonSet", "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": [ "apps_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "DaemonSet", "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 DaemonSet", "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/apps/v1/watch/namespaces/{namespace}/deployments": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1NamespacedDeploymentList", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "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/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/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Deployment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAppsV1NamespacedDeployment", "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": [ "apps_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "Deployment", "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 Deployment", "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/apps/v1/watch/namespaces/{namespace}/replicasets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1NamespacedReplicaSetList", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "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/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/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAppsV1NamespacedReplicaSet", "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": [ "apps_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "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 ReplicaSet", "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/apps/v1/watch/namespaces/{namespace}/statefulsets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1NamespacedStatefulSetList", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "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/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/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind StatefulSet. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAppsV1NamespacedStatefulSet", "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": [ "apps_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "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 StatefulSet", "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/apps/v1/watch/replicasets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "ReplicaSet", "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/apps/v1/watch/statefulsets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAppsV1StatefulSetListForAllNamespaces", "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": [ "apps_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "apps", "kind": "StatefulSet", "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/authentication.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getAuthenticationAPIGroup", "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": [ "authentication" ] } }, "/apis/authentication.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAuthenticationV1APIResources", "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": [ "authentication_v1" ] } }, "/apis/authentication.k8s.io/v1/selfsubjectreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a SelfSubjectReview", "operationId": "createAuthenticationV1SelfSubjectReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.SelfSubjectReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.SelfSubjectReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.SelfSubjectReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.SelfSubjectReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authentication_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authentication.k8s.io", "kind": "SelfSubjectReview", "version": "v1" } } }, "/apis/authentication.k8s.io/v1/tokenreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a TokenReview", "operationId": "createAuthenticationV1TokenReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authentication_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authentication.k8s.io", "kind": "TokenReview", "version": "v1" } } }, "/apis/authentication.k8s.io/v1alpha1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAuthenticationV1alpha1APIResources", "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": [ "authentication_v1alpha1" ] } }, "/apis/authentication.k8s.io/v1alpha1/selfsubjectreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a SelfSubjectReview", "operationId": "createAuthenticationV1alpha1SelfSubjectReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1alpha1.SelfSubjectReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1alpha1.SelfSubjectReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1alpha1.SelfSubjectReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1alpha1.SelfSubjectReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authentication_v1alpha1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authentication.k8s.io", "kind": "SelfSubjectReview", "version": "v1alpha1" } } }, "/apis/authentication.k8s.io/v1beta1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAuthenticationV1beta1APIResources", "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": [ "authentication_v1beta1" ] } }, "/apis/authentication.k8s.io/v1beta1/selfsubjectreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a SelfSubjectReview", "operationId": "createAuthenticationV1beta1SelfSubjectReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.SelfSubjectReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.SelfSubjectReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.SelfSubjectReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.SelfSubjectReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authentication_v1beta1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authentication.k8s.io", "kind": "SelfSubjectReview", "version": "v1beta1" } } }, "/apis/authorization.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getAuthorizationAPIGroup", "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": [ "authorization" ] } }, "/apis/authorization.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAuthorizationV1APIResources", "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": [ "authorization_v1" ] } }, "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a LocalSubjectAccessReview", "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.k8s.io", "kind": "LocalSubjectAccessReview", "version": "v1" } } }, "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a SelfSubjectAccessReview", "operationId": "createAuthorizationV1SelfSubjectAccessReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.k8s.io", "kind": "SelfSubjectAccessReview", "version": "v1" } } }, "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a SelfSubjectRulesReview", "operationId": "createAuthorizationV1SelfSubjectRulesReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.k8s.io", "kind": "SelfSubjectRulesReview", "version": "v1" } } }, "/apis/authorization.k8s.io/v1/subjectaccessreviews": { "parameters": [ { "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 }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a SubjectAccessReview", "operationId": "createAuthorizationV1SubjectAccessReview", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } } ], "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "authorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "authorization.k8s.io", "kind": "SubjectAccessReview", "version": "v1" } } }, "/apis/autoscaling/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getAutoscalingAPIGroup", "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": [ "autoscaling" ] } }, "/apis/autoscaling/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAutoscalingV1APIResources", "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": [ "autoscaling_v1" ] } }, "/apis/autoscaling/v1/horizontalpodautoscalers": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind HorizontalPodAutoscaler", "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", "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.autoscaling.v1.HorizontalPodAutoscalerList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "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/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of HorizontalPodAutoscaler", "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", "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": [ "autoscaling_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind HorizontalPodAutoscaler", "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", "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.autoscaling.v1.HorizontalPodAutoscalerList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a HorizontalPodAutoscaler", "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, { "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.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } } }, "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a HorizontalPodAutoscaler", "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", "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": [ "autoscaling_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified HorizontalPodAutoscaler", "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } }, "parameters": [ { "description": "name of the HorizontalPodAutoscaler", "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 HorizontalPodAutoscaler", "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", "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.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified HorizontalPodAutoscaler", "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, { "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.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } } }, "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified HorizontalPodAutoscaler", "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } }, "parameters": [ { "description": "name of the HorizontalPodAutoscaler", "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 status of the specified HorizontalPodAutoscaler", "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", "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.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified HorizontalPodAutoscaler", "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, { "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.autoscaling.v1.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v1" } } }, "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", "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": [ "autoscaling_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "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/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", "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": [ "autoscaling_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "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/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/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", "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": [ "autoscaling_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "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 HorizontalPodAutoscaler", "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/autoscaling/v2/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getAutoscalingV2APIResources", "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": [ "autoscaling_v2" ] } }, "/apis/autoscaling/v2/horizontalpodautoscalers": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind HorizontalPodAutoscaler", "operationId": "listAutoscalingV2HorizontalPodAutoscalerForAllNamespaces", "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.autoscaling.v2.HorizontalPodAutoscalerList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "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/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of HorizontalPodAutoscaler", "operationId": "deleteAutoscalingV2CollectionNamespacedHorizontalPodAutoscaler", "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": [ "autoscaling_v2" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind HorizontalPodAutoscaler", "operationId": "listAutoscalingV2NamespacedHorizontalPodAutoscaler", "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.autoscaling.v2.HorizontalPodAutoscalerList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a HorizontalPodAutoscaler", "operationId": "createAutoscalingV2NamespacedHorizontalPodAutoscaler", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, { "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.autoscaling.v2.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } } }, "/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a HorizontalPodAutoscaler", "operationId": "deleteAutoscalingV2NamespacedHorizontalPodAutoscaler", "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": [ "autoscaling_v2" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified HorizontalPodAutoscaler", "operationId": "readAutoscalingV2NamespacedHorizontalPodAutoscaler", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "parameters": [ { "description": "name of the HorizontalPodAutoscaler", "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 HorizontalPodAutoscaler", "operationId": "patchAutoscalingV2NamespacedHorizontalPodAutoscaler", "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.autoscaling.v2.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified HorizontalPodAutoscaler", "operationId": "replaceAutoscalingV2NamespacedHorizontalPodAutoscaler", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, { "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.autoscaling.v2.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } } }, "/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified HorizontalPodAutoscaler", "operationId": "readAutoscalingV2NamespacedHorizontalPodAutoscalerStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "parameters": [ { "description": "name of the HorizontalPodAutoscaler", "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 status of the specified HorizontalPodAutoscaler", "operationId": "patchAutoscalingV2NamespacedHorizontalPodAutoscalerStatus", "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.autoscaling.v2.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified HorizontalPodAutoscaler", "operationId": "replaceAutoscalingV2NamespacedHorizontalPodAutoscalerStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, { "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.autoscaling.v2.HorizontalPodAutoscaler" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "autoscaling_v2" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } } }, "/apis/autoscaling/v2/watch/horizontalpodautoscalers": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAutoscalingV2HorizontalPodAutoscalerListForAllNamespaces", "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": [ "autoscaling_v2" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "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/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchAutoscalingV2NamespacedHorizontalPodAutoscalerList", "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": [ "autoscaling_v2" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "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/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchAutoscalingV2NamespacedHorizontalPodAutoscaler", "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": [ "autoscaling_v2" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "autoscaling", "kind": "HorizontalPodAutoscaler", "version": "v2" } }, "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 HorizontalPodAutoscaler", "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/batch/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getBatchAPIGroup", "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": [ "batch" ] } }, "/apis/batch/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getBatchV1APIResources", "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": [ "batch_v1" ] } }, "/apis/batch/v1/cronjobs": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CronJob", "operationId": "listBatchV1CronJobForAllNamespaces", "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.batch.v1.CronJobList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "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/batch/v1/jobs": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Job", "operationId": "listBatchV1JobForAllNamespaces", "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.batch.v1.JobList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "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/batch/v1/namespaces/{namespace}/cronjobs": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of CronJob", "operationId": "deleteBatchV1CollectionNamespacedCronJob", "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": [ "batch_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CronJob", "operationId": "listBatchV1NamespacedCronJob", "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.batch.v1.CronJobList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a CronJob", "operationId": "createBatchV1NamespacedCronJob", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, { "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.batch.v1.CronJob" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } } }, "/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a CronJob", "operationId": "deleteBatchV1NamespacedCronJob", "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": [ "batch_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified CronJob", "operationId": "readBatchV1NamespacedCronJob", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } }, "parameters": [ { "description": "name of the CronJob", "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 CronJob", "operationId": "patchBatchV1NamespacedCronJob", "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.batch.v1.CronJob" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified CronJob", "operationId": "replaceBatchV1NamespacedCronJob", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, { "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.batch.v1.CronJob" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } } }, "/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified CronJob", "operationId": "readBatchV1NamespacedCronJobStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } }, "parameters": [ { "description": "name of the CronJob", "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 status of the specified CronJob", "operationId": "patchBatchV1NamespacedCronJobStatus", "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.batch.v1.CronJob" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified CronJob", "operationId": "replaceBatchV1NamespacedCronJobStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, { "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.batch.v1.CronJob" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.CronJob" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "version": "v1" } } }, "/apis/batch/v1/namespaces/{namespace}/jobs": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Job", "operationId": "deleteBatchV1CollectionNamespacedJob", "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": [ "batch_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Job", "operationId": "listBatchV1NamespacedJob", "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.batch.v1.JobList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Job", "operationId": "createBatchV1NamespacedJob", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, { "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.batch.v1.Job" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } } }, "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Job", "operationId": "deleteBatchV1NamespacedJob", "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": [ "batch_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Job", "operationId": "readBatchV1NamespacedJob", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } }, "parameters": [ { "description": "name of the Job", "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 Job", "operationId": "patchBatchV1NamespacedJob", "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.batch.v1.Job" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Job", "operationId": "replaceBatchV1NamespacedJob", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, { "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.batch.v1.Job" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } } }, "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified Job", "operationId": "readBatchV1NamespacedJobStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } }, "parameters": [ { "description": "name of the Job", "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 status of the specified Job", "operationId": "patchBatchV1NamespacedJobStatus", "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.batch.v1.Job" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified Job", "operationId": "replaceBatchV1NamespacedJobStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, { "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.batch.v1.Job" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.batch.v1.Job" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "batch_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "version": "v1" } } }, "/apis/batch/v1/watch/cronjobs": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchBatchV1CronJobListForAllNamespaces", "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": [ "batch_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "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/batch/v1/watch/jobs": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchBatchV1JobListForAllNamespaces", "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": [ "batch_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "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/batch/v1/watch/namespaces/{namespace}/cronjobs": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchBatchV1NamespacedCronJobList", "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": [ "batch_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "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/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/batch/v1/watch/namespaces/{namespace}/cronjobs/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind CronJob. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchBatchV1NamespacedCronJob", "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": [ "batch_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "CronJob", "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 CronJob", "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/batch/v1/watch/namespaces/{namespace}/jobs": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchBatchV1NamespacedJobList", "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": [ "batch_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "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/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/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Job. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchBatchV1NamespacedJob", "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": [ "batch_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "batch", "kind": "Job", "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 Job", "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/certificates.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getCertificatesAPIGroup", "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": [ "certificates" ] } }, "/apis/certificates.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getCertificatesV1APIResources", "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": [ "certificates_v1" ] } }, "/apis/certificates.k8s.io/v1/certificatesigningrequests": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of CertificateSigningRequest", "operationId": "deleteCertificatesV1CollectionCertificateSigningRequest", "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": [ "certificates_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CertificateSigningRequest", "operationId": "listCertificatesV1CertificateSigningRequest", "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.certificates.v1.CertificateSigningRequestList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a CertificateSigningRequest", "operationId": "createCertificatesV1CertificateSigningRequest", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, { "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.certificates.v1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } } }, "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a CertificateSigningRequest", "operationId": "deleteCertificatesV1CertificateSigningRequest", "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": [ "certificates_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified CertificateSigningRequest", "operationId": "readCertificatesV1CertificateSigningRequest", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "parameters": [ { "description": "name of the CertificateSigningRequest", "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 CertificateSigningRequest", "operationId": "patchCertificatesV1CertificateSigningRequest", "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.certificates.v1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified CertificateSigningRequest", "operationId": "replaceCertificatesV1CertificateSigningRequest", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, { "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.certificates.v1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } } }, "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval": { "get": { "consumes": [ "*/*" ], "description": "read approval of the specified CertificateSigningRequest", "operationId": "readCertificatesV1CertificateSigningRequestApproval", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "parameters": [ { "description": "name of the CertificateSigningRequest", "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 approval of the specified CertificateSigningRequest", "operationId": "patchCertificatesV1CertificateSigningRequestApproval", "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.certificates.v1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace approval of the specified CertificateSigningRequest", "operationId": "replaceCertificatesV1CertificateSigningRequestApproval", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, { "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.certificates.v1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } } }, "/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified CertificateSigningRequest", "operationId": "readCertificatesV1CertificateSigningRequestStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "parameters": [ { "description": "name of the CertificateSigningRequest", "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 CertificateSigningRequest", "operationId": "patchCertificatesV1CertificateSigningRequestStatus", "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.certificates.v1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified CertificateSigningRequest", "operationId": "replaceCertificatesV1CertificateSigningRequestStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, { "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.certificates.v1.CertificateSigningRequest" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "version": "v1" } } }, "/apis/certificates.k8s.io/v1/watch/certificatesigningrequests": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCertificatesV1CertificateSigningRequestList", "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": [ "certificates_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "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/certificates.k8s.io/v1/watch/certificatesigningrequests/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCertificatesV1CertificateSigningRequest", "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": [ "certificates_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "CertificateSigningRequest", "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 CertificateSigningRequest", "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/certificates.k8s.io/v1alpha1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getCertificatesV1alpha1APIResources", "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": [ "certificates_v1alpha1" ] } }, "/apis/certificates.k8s.io/v1alpha1/clustertrustbundles": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ClusterTrustBundle", "operationId": "deleteCertificatesV1alpha1CollectionClusterTrustBundle", "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": [ "certificates_v1alpha1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ClusterTrustBundle", "operationId": "listCertificatesV1alpha1ClusterTrustBundle", "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.certificates.v1alpha1.ClusterTrustBundleList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1alpha1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ClusterTrustBundle", "operationId": "createCertificatesV1alpha1ClusterTrustBundle", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" } }, { "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.certificates.v1alpha1.ClusterTrustBundle" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1alpha1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } } }, "/apis/certificates.k8s.io/v1alpha1/clustertrustbundles/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ClusterTrustBundle", "operationId": "deleteCertificatesV1alpha1ClusterTrustBundle", "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": [ "certificates_v1alpha1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ClusterTrustBundle", "operationId": "readCertificatesV1alpha1ClusterTrustBundle", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } }, "parameters": [ { "description": "name of the ClusterTrustBundle", "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 ClusterTrustBundle", "operationId": "patchCertificatesV1alpha1ClusterTrustBundle", "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.certificates.v1alpha1.ClusterTrustBundle" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ClusterTrustBundle", "operationId": "replaceCertificatesV1alpha1ClusterTrustBundle", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" } }, { "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.certificates.v1alpha1.ClusterTrustBundle" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.certificates.v1alpha1.ClusterTrustBundle" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "certificates_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "version": "v1alpha1" } } }, "/apis/certificates.k8s.io/v1alpha1/watch/clustertrustbundles": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ClusterTrustBundle. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCertificatesV1alpha1ClusterTrustBundleList", "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": [ "certificates_v1alpha1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "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/certificates.k8s.io/v1alpha1/watch/clustertrustbundles/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ClusterTrustBundle. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCertificatesV1alpha1ClusterTrustBundle", "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": [ "certificates_v1alpha1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "certificates.k8s.io", "kind": "ClusterTrustBundle", "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 ClusterTrustBundle", "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/coordination.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getCoordinationAPIGroup", "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": [ "coordination" ] } }, "/apis/coordination.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getCoordinationV1APIResources", "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": [ "coordination_v1" ] } }, "/apis/coordination.k8s.io/v1/leases": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Lease", "operationId": "listCoordinationV1LeaseForAllNamespaces", "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.coordination.v1.LeaseList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "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/coordination.k8s.io/v1/namespaces/{namespace}/leases": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Lease", "operationId": "deleteCoordinationV1CollectionNamespacedLease", "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": [ "coordination_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Lease", "operationId": "listCoordinationV1NamespacedLease", "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.coordination.v1.LeaseList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Lease", "operationId": "createCoordinationV1NamespacedLease", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" } }, { "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.coordination.v1.Lease" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } } }, "/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Lease", "operationId": "deleteCoordinationV1NamespacedLease", "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": [ "coordination_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Lease", "operationId": "readCoordinationV1NamespacedLease", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } }, "parameters": [ { "description": "name of the Lease", "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 Lease", "operationId": "patchCoordinationV1NamespacedLease", "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.coordination.v1.Lease" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Lease", "operationId": "replaceCoordinationV1NamespacedLease", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" } }, { "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.coordination.v1.Lease" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1.Lease" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "version": "v1" } } }, "/apis/coordination.k8s.io/v1/watch/leases": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoordinationV1LeaseListForAllNamespaces", "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": [ "coordination_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "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/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoordinationV1NamespacedLeaseList", "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": [ "coordination_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "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/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/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Lease. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoordinationV1NamespacedLease", "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": [ "coordination_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "Lease", "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 Lease", "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/coordination.k8s.io/v1alpha1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getCoordinationV1alpha1APIResources", "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": [ "coordination_v1alpha1" ] } }, "/apis/coordination.k8s.io/v1alpha1/leasecandidates": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind LeaseCandidate", "operationId": "listCoordinationV1alpha1LeaseCandidateForAllNamespaces", "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.coordination.v1alpha1.LeaseCandidateList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1alpha1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "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/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of LeaseCandidate", "operationId": "deleteCoordinationV1alpha1CollectionNamespacedLeaseCandidate", "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": [ "coordination_v1alpha1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind LeaseCandidate", "operationId": "listCoordinationV1alpha1NamespacedLeaseCandidate", "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.coordination.v1alpha1.LeaseCandidateList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1alpha1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a LeaseCandidate", "operationId": "createCoordinationV1alpha1NamespacedLeaseCandidate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" } }, { "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.coordination.v1alpha1.LeaseCandidate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1alpha1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } } }, "/apis/coordination.k8s.io/v1alpha1/namespaces/{namespace}/leasecandidates/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a LeaseCandidate", "operationId": "deleteCoordinationV1alpha1NamespacedLeaseCandidate", "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": [ "coordination_v1alpha1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified LeaseCandidate", "operationId": "readCoordinationV1alpha1NamespacedLeaseCandidate", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } }, "parameters": [ { "description": "name of the LeaseCandidate", "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 LeaseCandidate", "operationId": "patchCoordinationV1alpha1NamespacedLeaseCandidate", "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.coordination.v1alpha1.LeaseCandidate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified LeaseCandidate", "operationId": "replaceCoordinationV1alpha1NamespacedLeaseCandidate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" } }, { "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.coordination.v1alpha1.LeaseCandidate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.coordination.v1alpha1.LeaseCandidate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "coordination_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "version": "v1alpha1" } } }, "/apis/coordination.k8s.io/v1alpha1/watch/leasecandidates": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of LeaseCandidate. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoordinationV1alpha1LeaseCandidateListForAllNamespaces", "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": [ "coordination_v1alpha1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "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/coordination.k8s.io/v1alpha1/watch/namespaces/{namespace}/leasecandidates": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of LeaseCandidate. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchCoordinationV1alpha1NamespacedLeaseCandidateList", "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": [ "coordination_v1alpha1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "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/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/coordination.k8s.io/v1alpha1/watch/namespaces/{namespace}/leasecandidates/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind LeaseCandidate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchCoordinationV1alpha1NamespacedLeaseCandidate", "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": [ "coordination_v1alpha1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "coordination.k8s.io", "kind": "LeaseCandidate", "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 LeaseCandidate", "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/discovery.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getDiscoveryAPIGroup", "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": [ "discovery" ] } }, "/apis/discovery.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getDiscoveryV1APIResources", "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": [ "discovery_v1" ] } }, "/apis/discovery.k8s.io/v1/endpointslices": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind EndpointSlice", "operationId": "listDiscoveryV1EndpointSliceForAllNamespaces", "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.discovery.v1.EndpointSliceList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "discovery_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "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/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of EndpointSlice", "operationId": "deleteDiscoveryV1CollectionNamespacedEndpointSlice", "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": [ "discovery_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind EndpointSlice", "operationId": "listDiscoveryV1NamespacedEndpointSlice", "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.discovery.v1.EndpointSliceList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "discovery_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create an EndpointSlice", "operationId": "createDiscoveryV1NamespacedEndpointSlice", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" } }, { "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.discovery.v1.EndpointSlice" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "discovery_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } } }, "/apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete an EndpointSlice", "operationId": "deleteDiscoveryV1NamespacedEndpointSlice", "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": [ "discovery_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified EndpointSlice", "operationId": "readDiscoveryV1NamespacedEndpointSlice", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "discovery_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } }, "parameters": [ { "description": "name of the EndpointSlice", "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 EndpointSlice", "operationId": "patchDiscoveryV1NamespacedEndpointSlice", "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.discovery.v1.EndpointSlice" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "discovery_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified EndpointSlice", "operationId": "replaceDiscoveryV1NamespacedEndpointSlice", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" } }, { "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.discovery.v1.EndpointSlice" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.discovery.v1.EndpointSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "discovery_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "version": "v1" } } }, "/apis/discovery.k8s.io/v1/watch/endpointslices": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchDiscoveryV1EndpointSliceListForAllNamespaces", "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": [ "discovery_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "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/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchDiscoveryV1NamespacedEndpointSliceList", "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": [ "discovery_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "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/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/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchDiscoveryV1NamespacedEndpointSlice", "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": [ "discovery_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "discovery.k8s.io", "kind": "EndpointSlice", "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 EndpointSlice", "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/events.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getEventsAPIGroup", "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": [ "events" ] } }, "/apis/events.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getEventsV1APIResources", "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": [ "events_v1" ] } }, "/apis/events.k8s.io/v1/events": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Event", "operationId": "listEventsV1EventForAllNamespaces", "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.events.v1.EventList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "events_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "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/events.k8s.io/v1/namespaces/{namespace}/events": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Event", "operationId": "deleteEventsV1CollectionNamespacedEvent", "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": [ "events_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Event", "operationId": "listEventsV1NamespacedEvent", "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.events.v1.EventList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "events_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create an Event", "operationId": "createEventsV1NamespacedEvent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" } }, { "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.events.v1.Event" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "events_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "version": "v1" } } }, "/apis/events.k8s.io/v1/namespaces/{namespace}/events/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete an Event", "operationId": "deleteEventsV1NamespacedEvent", "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": [ "events_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Event", "operationId": "readEventsV1NamespacedEvent", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "events_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "version": "v1" } }, "parameters": [ { "description": "name of the Event", "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 Event", "operationId": "patchEventsV1NamespacedEvent", "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.events.v1.Event" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "events_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Event", "operationId": "replaceEventsV1NamespacedEvent", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" } }, { "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.events.v1.Event" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.events.v1.Event" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "events_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "version": "v1" } } }, "/apis/events.k8s.io/v1/watch/events": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchEventsV1EventListForAllNamespaces", "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": [ "events_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "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/events.k8s.io/v1/watch/namespaces/{namespace}/events": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchEventsV1NamespacedEventList", "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": [ "events_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "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/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/events.k8s.io/v1/watch/namespaces/{namespace}/events/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Event. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchEventsV1NamespacedEvent", "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": [ "events_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "events.k8s.io", "kind": "Event", "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 Event", "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/flowcontrol.apiserver.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getFlowcontrolApiserverAPIGroup", "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": [ "flowcontrolApiserver" ] } }, "/apis/flowcontrol.apiserver.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getFlowcontrolApiserverV1APIResources", "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": [ "flowcontrolApiserver_v1" ] } }, "/apis/flowcontrol.apiserver.k8s.io/v1/flowschemas": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of FlowSchema", "operationId": "deleteFlowcontrolApiserverV1CollectionFlowSchema", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind FlowSchema", "operationId": "listFlowcontrolApiserverV1FlowSchema", "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.flowcontrol.v1.FlowSchemaList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a FlowSchema", "operationId": "createFlowcontrolApiserverV1FlowSchema", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, { "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.flowcontrol.v1.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a FlowSchema", "operationId": "deleteFlowcontrolApiserverV1FlowSchema", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified FlowSchema", "operationId": "readFlowcontrolApiserverV1FlowSchema", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } }, "parameters": [ { "description": "name of the FlowSchema", "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 FlowSchema", "operationId": "patchFlowcontrolApiserverV1FlowSchema", "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.flowcontrol.v1.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified FlowSchema", "operationId": "replaceFlowcontrolApiserverV1FlowSchema", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, { "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.flowcontrol.v1.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified FlowSchema", "operationId": "readFlowcontrolApiserverV1FlowSchemaStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } }, "parameters": [ { "description": "name of the FlowSchema", "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 FlowSchema", "operationId": "patchFlowcontrolApiserverV1FlowSchemaStatus", "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.flowcontrol.v1.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified FlowSchema", "operationId": "replaceFlowcontrolApiserverV1FlowSchemaStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, { "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.flowcontrol.v1.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PriorityLevelConfiguration", "operationId": "deleteFlowcontrolApiserverV1CollectionPriorityLevelConfiguration", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PriorityLevelConfiguration", "operationId": "listFlowcontrolApiserverV1PriorityLevelConfiguration", "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.flowcontrol.v1.PriorityLevelConfigurationList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PriorityLevelConfiguration", "operationId": "createFlowcontrolApiserverV1PriorityLevelConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, { "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.flowcontrol.v1.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PriorityLevelConfiguration", "operationId": "deleteFlowcontrolApiserverV1PriorityLevelConfiguration", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PriorityLevelConfiguration", "operationId": "readFlowcontrolApiserverV1PriorityLevelConfiguration", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } }, "parameters": [ { "description": "name of the PriorityLevelConfiguration", "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 PriorityLevelConfiguration", "operationId": "patchFlowcontrolApiserverV1PriorityLevelConfiguration", "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.flowcontrol.v1.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PriorityLevelConfiguration", "operationId": "replaceFlowcontrolApiserverV1PriorityLevelConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, { "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.flowcontrol.v1.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified PriorityLevelConfiguration", "operationId": "readFlowcontrolApiserverV1PriorityLevelConfigurationStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } }, "parameters": [ { "description": "name of the PriorityLevelConfiguration", "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 PriorityLevelConfiguration", "operationId": "patchFlowcontrolApiserverV1PriorityLevelConfigurationStatus", "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.flowcontrol.v1.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified PriorityLevelConfiguration", "operationId": "replaceFlowcontrolApiserverV1PriorityLevelConfigurationStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, { "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.flowcontrol.v1.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1/watch/flowschemas": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of FlowSchema. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchFlowcontrolApiserverV1FlowSchemaList", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "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/flowcontrol.apiserver.k8s.io/v1/watch/flowschemas/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind FlowSchema. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchFlowcontrolApiserverV1FlowSchema", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "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 FlowSchema", "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/flowcontrol.apiserver.k8s.io/v1/watch/prioritylevelconfigurations": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchFlowcontrolApiserverV1PriorityLevelConfigurationList", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "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/flowcontrol.apiserver.k8s.io/v1/watch/prioritylevelconfigurations/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchFlowcontrolApiserverV1PriorityLevelConfiguration", "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": [ "flowcontrolApiserver_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "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 PriorityLevelConfiguration", "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/flowcontrol.apiserver.k8s.io/v1beta3/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getFlowcontrolApiserverV1beta3APIResources", "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": [ "flowcontrolApiserver_v1beta3" ] } }, "/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of FlowSchema", "operationId": "deleteFlowcontrolApiserverV1beta3CollectionFlowSchema", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind FlowSchema", "operationId": "listFlowcontrolApiserverV1beta3FlowSchema", "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.flowcontrol.v1beta3.FlowSchemaList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a FlowSchema", "operationId": "createFlowcontrolApiserverV1beta3FlowSchema", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, { "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.flowcontrol.v1beta3.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a FlowSchema", "operationId": "deleteFlowcontrolApiserverV1beta3FlowSchema", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified FlowSchema", "operationId": "readFlowcontrolApiserverV1beta3FlowSchema", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "parameters": [ { "description": "name of the FlowSchema", "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 FlowSchema", "operationId": "patchFlowcontrolApiserverV1beta3FlowSchema", "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.flowcontrol.v1beta3.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified FlowSchema", "operationId": "replaceFlowcontrolApiserverV1beta3FlowSchema", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, { "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.flowcontrol.v1beta3.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified FlowSchema", "operationId": "readFlowcontrolApiserverV1beta3FlowSchemaStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "parameters": [ { "description": "name of the FlowSchema", "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 FlowSchema", "operationId": "patchFlowcontrolApiserverV1beta3FlowSchemaStatus", "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.flowcontrol.v1beta3.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified FlowSchema", "operationId": "replaceFlowcontrolApiserverV1beta3FlowSchemaStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, { "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.flowcontrol.v1beta3.FlowSchema" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PriorityLevelConfiguration", "operationId": "deleteFlowcontrolApiserverV1beta3CollectionPriorityLevelConfiguration", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PriorityLevelConfiguration", "operationId": "listFlowcontrolApiserverV1beta3PriorityLevelConfiguration", "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.flowcontrol.v1beta3.PriorityLevelConfigurationList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PriorityLevelConfiguration", "operationId": "createFlowcontrolApiserverV1beta3PriorityLevelConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, { "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.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PriorityLevelConfiguration", "operationId": "deleteFlowcontrolApiserverV1beta3PriorityLevelConfiguration", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PriorityLevelConfiguration", "operationId": "readFlowcontrolApiserverV1beta3PriorityLevelConfiguration", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "parameters": [ { "description": "name of the PriorityLevelConfiguration", "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 PriorityLevelConfiguration", "operationId": "patchFlowcontrolApiserverV1beta3PriorityLevelConfiguration", "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.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PriorityLevelConfiguration", "operationId": "replaceFlowcontrolApiserverV1beta3PriorityLevelConfiguration", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, { "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.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified PriorityLevelConfiguration", "operationId": "readFlowcontrolApiserverV1beta3PriorityLevelConfigurationStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "parameters": [ { "description": "name of the PriorityLevelConfiguration", "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 PriorityLevelConfiguration", "operationId": "patchFlowcontrolApiserverV1beta3PriorityLevelConfigurationStatus", "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.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified PriorityLevelConfiguration", "operationId": "replaceFlowcontrolApiserverV1beta3PriorityLevelConfigurationStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, { "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.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } } }, "/apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/flowschemas": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of FlowSchema. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchFlowcontrolApiserverV1beta3FlowSchemaList", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "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/flowcontrol.apiserver.k8s.io/v1beta3/watch/flowschemas/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind FlowSchema. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchFlowcontrolApiserverV1beta3FlowSchema", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "FlowSchema", "version": "v1beta3" } }, "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 FlowSchema", "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/flowcontrol.apiserver.k8s.io/v1beta3/watch/prioritylevelconfigurations": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchFlowcontrolApiserverV1beta3PriorityLevelConfigurationList", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "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/flowcontrol.apiserver.k8s.io/v1beta3/watch/prioritylevelconfigurations/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchFlowcontrolApiserverV1beta3PriorityLevelConfiguration", "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": [ "flowcontrolApiserver_v1beta3" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "flowcontrol.apiserver.k8s.io", "kind": "PriorityLevelConfiguration", "version": "v1beta3" } }, "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 PriorityLevelConfiguration", "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/internal.apiserver.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getInternalApiserverAPIGroup", "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": [ "internalApiserver" ] } }, "/apis/internal.apiserver.k8s.io/v1alpha1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getInternalApiserverV1alpha1APIResources", "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": [ "internalApiserver_v1alpha1" ] } }, "/apis/internal.apiserver.k8s.io/v1alpha1/storageversions": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of StorageVersion", "operationId": "deleteInternalApiserverV1alpha1CollectionStorageVersion", "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": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind StorageVersion", "operationId": "listInternalApiserverV1alpha1StorageVersion", "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.apiserverinternal.v1alpha1.StorageVersionList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a StorageVersion", "operationId": "createInternalApiserverV1alpha1StorageVersion", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, { "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.apiserverinternal.v1alpha1.StorageVersion" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } } }, "/apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a StorageVersion", "operationId": "deleteInternalApiserverV1alpha1StorageVersion", "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": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified StorageVersion", "operationId": "readInternalApiserverV1alpha1StorageVersion", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } }, "parameters": [ { "description": "name of the StorageVersion", "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 StorageVersion", "operationId": "patchInternalApiserverV1alpha1StorageVersion", "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.apiserverinternal.v1alpha1.StorageVersion" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified StorageVersion", "operationId": "replaceInternalApiserverV1alpha1StorageVersion", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, { "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.apiserverinternal.v1alpha1.StorageVersion" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } } }, "/apis/internal.apiserver.k8s.io/v1alpha1/storageversions/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified StorageVersion", "operationId": "readInternalApiserverV1alpha1StorageVersionStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } }, "parameters": [ { "description": "name of the StorageVersion", "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 StorageVersion", "operationId": "patchInternalApiserverV1alpha1StorageVersionStatus", "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.apiserverinternal.v1alpha1.StorageVersion" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified StorageVersion", "operationId": "replaceInternalApiserverV1alpha1StorageVersionStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, { "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.apiserverinternal.v1alpha1.StorageVersion" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "version": "v1alpha1" } } }, "/apis/internal.apiserver.k8s.io/v1alpha1/watch/storageversions": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of StorageVersion. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchInternalApiserverV1alpha1StorageVersionList", "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": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "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/internal.apiserver.k8s.io/v1alpha1/watch/storageversions/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind StorageVersion. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchInternalApiserverV1alpha1StorageVersion", "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": [ "internalApiserver_v1alpha1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "internal.apiserver.k8s.io", "kind": "StorageVersion", "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 StorageVersion", "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/networking.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getNetworkingAPIGroup", "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": [ "networking" ] } }, "/apis/networking.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getNetworkingV1APIResources", "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": [ "networking_v1" ] } }, "/apis/networking.k8s.io/v1/ingressclasses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of IngressClass", "operationId": "deleteNetworkingV1CollectionIngressClass", "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": [ "networking_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind IngressClass", "operationId": "listNetworkingV1IngressClass", "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.networking.v1.IngressClassList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create an IngressClass", "operationId": "createNetworkingV1IngressClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" } }, { "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.networking.v1.IngressClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } } }, "/apis/networking.k8s.io/v1/ingressclasses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete an IngressClass", "operationId": "deleteNetworkingV1IngressClass", "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": [ "networking_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified IngressClass", "operationId": "readNetworkingV1IngressClass", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } }, "parameters": [ { "description": "name of the IngressClass", "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 IngressClass", "operationId": "patchNetworkingV1IngressClass", "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.networking.v1.IngressClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified IngressClass", "operationId": "replaceNetworkingV1IngressClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" } }, { "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.networking.v1.IngressClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "version": "v1" } } }, "/apis/networking.k8s.io/v1/ingresses": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Ingress", "operationId": "listNetworkingV1IngressForAllNamespaces", "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.networking.v1.IngressList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "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/networking.k8s.io/v1/namespaces/{namespace}/ingresses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Ingress", "operationId": "deleteNetworkingV1CollectionNamespacedIngress", "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": [ "networking_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Ingress", "operationId": "listNetworkingV1NamespacedIngress", "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.networking.v1.IngressList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create an Ingress", "operationId": "createNetworkingV1NamespacedIngress", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, { "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.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } } }, "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete an Ingress", "operationId": "deleteNetworkingV1NamespacedIngress", "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": [ "networking_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Ingress", "operationId": "readNetworkingV1NamespacedIngress", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, "parameters": [ { "description": "name of the Ingress", "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 Ingress", "operationId": "patchNetworkingV1NamespacedIngress", "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.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Ingress", "operationId": "replaceNetworkingV1NamespacedIngress", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, { "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.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } } }, "/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified Ingress", "operationId": "readNetworkingV1NamespacedIngressStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, "parameters": [ { "description": "name of the Ingress", "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 status of the specified Ingress", "operationId": "patchNetworkingV1NamespacedIngressStatus", "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.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified Ingress", "operationId": "replaceNetworkingV1NamespacedIngressStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, { "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.networking.v1.Ingress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.Ingress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "version": "v1" } } }, "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of NetworkPolicy", "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", "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": [ "networking_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind NetworkPolicy", "operationId": "listNetworkingV1NamespacedNetworkPolicy", "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.networking.v1.NetworkPolicyList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a NetworkPolicy", "operationId": "createNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, { "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.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } } }, "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a NetworkPolicy", "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", "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": [ "networking_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified NetworkPolicy", "operationId": "readNetworkingV1NamespacedNetworkPolicy", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } }, "parameters": [ { "description": "name of the NetworkPolicy", "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 NetworkPolicy", "operationId": "patchNetworkingV1NamespacedNetworkPolicy", "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.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified NetworkPolicy", "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, { "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.networking.v1.NetworkPolicy" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "version": "v1" } } }, "/apis/networking.k8s.io/v1/networkpolicies": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind NetworkPolicy", "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", "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.networking.v1.NetworkPolicyList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "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/networking.k8s.io/v1/watch/ingressclasses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNetworkingV1IngressClassList", "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": [ "networking_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "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/networking.k8s.io/v1/watch/ingressclasses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind IngressClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchNetworkingV1IngressClass", "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": [ "networking_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IngressClass", "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 IngressClass", "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/networking.k8s.io/v1/watch/ingresses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNetworkingV1IngressListForAllNamespaces", "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": [ "networking_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "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/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNetworkingV1NamespacedIngressList", "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": [ "networking_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "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/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/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Ingress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchNetworkingV1NamespacedIngress", "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": [ "networking_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "Ingress", "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 Ingress", "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/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", "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": [ "networking_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "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/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/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchNetworkingV1NamespacedNetworkPolicy", "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": [ "networking_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "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 NetworkPolicy", "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/networking.k8s.io/v1/watch/networkpolicies": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", "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": [ "networking_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "NetworkPolicy", "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/networking.k8s.io/v1beta1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getNetworkingV1beta1APIResources", "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": [ "networking_v1beta1" ] } }, "/apis/networking.k8s.io/v1beta1/ipaddresses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of IPAddress", "operationId": "deleteNetworkingV1beta1CollectionIPAddress", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind IPAddress", "operationId": "listNetworkingV1beta1IPAddress", "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.networking.v1beta1.IPAddressList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create an IPAddress", "operationId": "createNetworkingV1beta1IPAddress", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" } }, { "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.networking.v1beta1.IPAddress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } } }, "/apis/networking.k8s.io/v1beta1/ipaddresses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete an IPAddress", "operationId": "deleteNetworkingV1beta1IPAddress", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified IPAddress", "operationId": "readNetworkingV1beta1IPAddress", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } }, "parameters": [ { "description": "name of the IPAddress", "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 IPAddress", "operationId": "patchNetworkingV1beta1IPAddress", "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.networking.v1beta1.IPAddress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified IPAddress", "operationId": "replaceNetworkingV1beta1IPAddress", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" } }, { "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.networking.v1beta1.IPAddress" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.IPAddress" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } } }, "/apis/networking.k8s.io/v1beta1/servicecidrs": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ServiceCIDR", "operationId": "deleteNetworkingV1beta1CollectionServiceCIDR", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ServiceCIDR", "operationId": "listNetworkingV1beta1ServiceCIDR", "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.networking.v1beta1.ServiceCIDRList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ServiceCIDR", "operationId": "createNetworkingV1beta1ServiceCIDR", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, { "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.networking.v1beta1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } } }, "/apis/networking.k8s.io/v1beta1/servicecidrs/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ServiceCIDR", "operationId": "deleteNetworkingV1beta1ServiceCIDR", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ServiceCIDR", "operationId": "readNetworkingV1beta1ServiceCIDR", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "parameters": [ { "description": "name of the ServiceCIDR", "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 ServiceCIDR", "operationId": "patchNetworkingV1beta1ServiceCIDR", "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.networking.v1beta1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ServiceCIDR", "operationId": "replaceNetworkingV1beta1ServiceCIDR", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, { "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.networking.v1beta1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } } }, "/apis/networking.k8s.io/v1beta1/servicecidrs/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified ServiceCIDR", "operationId": "readNetworkingV1beta1ServiceCIDRStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "parameters": [ { "description": "name of the ServiceCIDR", "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 ServiceCIDR", "operationId": "patchNetworkingV1beta1ServiceCIDRStatus", "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.networking.v1beta1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified ServiceCIDR", "operationId": "replaceNetworkingV1beta1ServiceCIDRStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, { "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.networking.v1beta1.ServiceCIDR" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.networking.v1beta1.ServiceCIDR" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "networking_v1beta1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } } }, "/apis/networking.k8s.io/v1beta1/watch/ipaddresses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of IPAddress. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNetworkingV1beta1IPAddressList", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } }, "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/networking.k8s.io/v1beta1/watch/ipaddresses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind IPAddress. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchNetworkingV1beta1IPAddress", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "IPAddress", "version": "v1beta1" } }, "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 IPAddress", "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/networking.k8s.io/v1beta1/watch/servicecidrs": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ServiceCIDR. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNetworkingV1beta1ServiceCIDRList", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "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/networking.k8s.io/v1beta1/watch/servicecidrs/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ServiceCIDR. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchNetworkingV1beta1ServiceCIDR", "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": [ "networking_v1beta1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "networking.k8s.io", "kind": "ServiceCIDR", "version": "v1beta1" } }, "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 ServiceCIDR", "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/node.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getNodeAPIGroup", "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": [ "node" ] } }, "/apis/node.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getNodeV1APIResources", "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": [ "node_v1" ] } }, "/apis/node.k8s.io/v1/runtimeclasses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of RuntimeClass", "operationId": "deleteNodeV1CollectionRuntimeClass", "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": [ "node_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind RuntimeClass", "operationId": "listNodeV1RuntimeClass", "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.node.v1.RuntimeClassList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "node_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a RuntimeClass", "operationId": "createNodeV1RuntimeClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" } }, { "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.node.v1.RuntimeClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "node_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } } }, "/apis/node.k8s.io/v1/runtimeclasses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a RuntimeClass", "operationId": "deleteNodeV1RuntimeClass", "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": [ "node_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified RuntimeClass", "operationId": "readNodeV1RuntimeClass", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "node_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } }, "parameters": [ { "description": "name of the RuntimeClass", "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 RuntimeClass", "operationId": "patchNodeV1RuntimeClass", "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.node.v1.RuntimeClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "node_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified RuntimeClass", "operationId": "replaceNodeV1RuntimeClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" } }, { "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.node.v1.RuntimeClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.node.v1.RuntimeClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "node_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "version": "v1" } } }, "/apis/node.k8s.io/v1/watch/runtimeclasses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchNodeV1RuntimeClassList", "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": [ "node_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "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/node.k8s.io/v1/watch/runtimeclasses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchNodeV1RuntimeClass", "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": [ "node_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "node.k8s.io", "kind": "RuntimeClass", "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 RuntimeClass", "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/policy/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getPolicyAPIGroup", "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": [ "policy" ] } }, "/apis/policy/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getPolicyV1APIResources", "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": [ "policy_v1" ] } }, "/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PodDisruptionBudget", "operationId": "deletePolicyV1CollectionNamespacedPodDisruptionBudget", "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": [ "policy_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PodDisruptionBudget", "operationId": "listPolicyV1NamespacedPodDisruptionBudget", "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.policy.v1.PodDisruptionBudgetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PodDisruptionBudget", "operationId": "createPolicyV1NamespacedPodDisruptionBudget", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, { "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.policy.v1.PodDisruptionBudget" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } } }, "/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PodDisruptionBudget", "operationId": "deletePolicyV1NamespacedPodDisruptionBudget", "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": [ "policy_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PodDisruptionBudget", "operationId": "readPolicyV1NamespacedPodDisruptionBudget", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } }, "parameters": [ { "description": "name of the PodDisruptionBudget", "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 PodDisruptionBudget", "operationId": "patchPolicyV1NamespacedPodDisruptionBudget", "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.policy.v1.PodDisruptionBudget" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PodDisruptionBudget", "operationId": "replacePolicyV1NamespacedPodDisruptionBudget", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, { "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.policy.v1.PodDisruptionBudget" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } } }, "/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified PodDisruptionBudget", "operationId": "readPolicyV1NamespacedPodDisruptionBudgetStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } }, "parameters": [ { "description": "name of the PodDisruptionBudget", "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 status of the specified PodDisruptionBudget", "operationId": "patchPolicyV1NamespacedPodDisruptionBudgetStatus", "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.policy.v1.PodDisruptionBudget" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified PodDisruptionBudget", "operationId": "replacePolicyV1NamespacedPodDisruptionBudgetStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, { "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.policy.v1.PodDisruptionBudget" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "version": "v1" } } }, "/apis/policy/v1/poddisruptionbudgets": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PodDisruptionBudget", "operationId": "listPolicyV1PodDisruptionBudgetForAllNamespaces", "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.policy.v1.PodDisruptionBudgetList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "policy_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "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/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchPolicyV1NamespacedPodDisruptionBudgetList", "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": [ "policy_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "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/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/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchPolicyV1NamespacedPodDisruptionBudget", "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": [ "policy_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "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 PodDisruptionBudget", "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/policy/v1/watch/poddisruptionbudgets": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchPolicyV1PodDisruptionBudgetListForAllNamespaces", "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": [ "policy_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "policy", "kind": "PodDisruptionBudget", "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/rbac.authorization.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getRbacAuthorizationAPIGroup", "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": [ "rbacAuthorization" ] } }, "/apis/rbac.authorization.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getRbacAuthorizationV1APIResources", "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": [ "rbacAuthorization_v1" ] } }, "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ClusterRoleBinding", "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ClusterRoleBinding", "operationId": "listRbacAuthorizationV1ClusterRoleBinding", "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.rbac.v1.ClusterRoleBindingList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ClusterRoleBinding", "operationId": "createRbacAuthorizationV1ClusterRoleBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, { "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.rbac.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ClusterRoleBinding", "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ClusterRoleBinding", "operationId": "readRbacAuthorizationV1ClusterRoleBinding", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } }, "parameters": [ { "description": "name of the ClusterRoleBinding", "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 ClusterRoleBinding", "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", "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.rbac.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ClusterRoleBinding", "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, { "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.rbac.v1.ClusterRoleBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/clusterroles": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ClusterRole", "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ClusterRole", "operationId": "listRbacAuthorizationV1ClusterRole", "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.rbac.v1.ClusterRoleList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ClusterRole", "operationId": "createRbacAuthorizationV1ClusterRole", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, { "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.rbac.v1.ClusterRole" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ClusterRole", "operationId": "deleteRbacAuthorizationV1ClusterRole", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ClusterRole", "operationId": "readRbacAuthorizationV1ClusterRole", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } }, "parameters": [ { "description": "name of the ClusterRole", "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 ClusterRole", "operationId": "patchRbacAuthorizationV1ClusterRole", "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.rbac.v1.ClusterRole" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ClusterRole", "operationId": "replaceRbacAuthorizationV1ClusterRole", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, { "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.rbac.v1.ClusterRole" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of RoleBinding", "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind RoleBinding", "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", "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.rbac.v1.RoleBindingList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a RoleBinding", "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, { "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.rbac.v1.RoleBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a RoleBinding", "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified RoleBinding", "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } }, "parameters": [ { "description": "name of the RoleBinding", "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 RoleBinding", "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", "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.rbac.v1.RoleBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified RoleBinding", "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, { "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.rbac.v1.RoleBinding" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of Role", "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Role", "operationId": "listRbacAuthorizationV1NamespacedRole", "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.rbac.v1.RoleList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a Role", "operationId": "createRbacAuthorizationV1NamespacedRole", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, { "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.rbac.v1.Role" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a Role", "operationId": "deleteRbacAuthorizationV1NamespacedRole", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified Role", "operationId": "readRbacAuthorizationV1NamespacedRole", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } }, "parameters": [ { "description": "name of the Role", "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 Role", "operationId": "patchRbacAuthorizationV1NamespacedRole", "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.rbac.v1.Role" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified Role", "operationId": "replaceRbacAuthorizationV1NamespacedRole", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, { "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.rbac.v1.Role" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "version": "v1" } } }, "/apis/rbac.authorization.k8s.io/v1/rolebindings": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind RoleBinding", "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", "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.rbac.v1.RoleBindingList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "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/rbac.authorization.k8s.io/v1/roles": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind Role", "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", "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.rbac.v1.RoleList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "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/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "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/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRoleBinding", "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 ClusterRoleBinding", "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/rbac.authorization.k8s.io/v1/watch/clusterroles": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchRbacAuthorizationV1ClusterRoleList", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "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/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ClusterRole. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchRbacAuthorizationV1ClusterRole", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "ClusterRole", "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 ClusterRole", "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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "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/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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind RoleBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "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 RoleBinding", "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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchRbacAuthorizationV1NamespacedRoleList", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "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/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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind Role. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchRbacAuthorizationV1NamespacedRole", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "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 Role", "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/rbac.authorization.k8s.io/v1/watch/rolebindings": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "RoleBinding", "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/rbac.authorization.k8s.io/v1/watch/roles": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", "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": [ "rbacAuthorization_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "rbac.authorization.k8s.io", "kind": "Role", "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/resource.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getResourceAPIGroup", "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": [ "resource" ] } }, "/apis/resource.k8s.io/v1alpha3/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getResourceV1alpha3APIResources", "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": [ "resource_v1alpha3" ] } }, "/apis/resource.k8s.io/v1alpha3/deviceclasses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of DeviceClass", "operationId": "deleteResourceV1alpha3CollectionDeviceClass", "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_v1alpha3" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind DeviceClass", "operationId": "listResourceV1alpha3DeviceClass", "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.v1alpha3.DeviceClassList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a DeviceClass", "operationId": "createResourceV1alpha3DeviceClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, { "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.v1alpha3.DeviceClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/deviceclasses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a DeviceClass", "operationId": "deleteResourceV1alpha3DeviceClass", "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.v1alpha3.DeviceClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified DeviceClass", "operationId": "readResourceV1alpha3DeviceClass", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } }, "parameters": [ { "description": "name of the DeviceClass", "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 DeviceClass", "operationId": "patchResourceV1alpha3DeviceClass", "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.v1alpha3.DeviceClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified DeviceClass", "operationId": "replaceResourceV1alpha3DeviceClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, { "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.v1alpha3.DeviceClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.DeviceClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PodSchedulingContext", "operationId": "deleteResourceV1alpha3CollectionNamespacedPodSchedulingContext", "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_v1alpha3" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PodSchedulingContext", "operationId": "listResourceV1alpha3NamespacedPodSchedulingContext", "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.v1alpha3.PodSchedulingContextList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PodSchedulingContext", "operationId": "createResourceV1alpha3NamespacedPodSchedulingContext", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, { "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.v1alpha3.PodSchedulingContext" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PodSchedulingContext", "operationId": "deleteResourceV1alpha3NamespacedPodSchedulingContext", "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.v1alpha3.PodSchedulingContext" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PodSchedulingContext", "operationId": "readResourceV1alpha3NamespacedPodSchedulingContext", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "parameters": [ { "description": "name of the PodSchedulingContext", "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 PodSchedulingContext", "operationId": "patchResourceV1alpha3NamespacedPodSchedulingContext", "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.v1alpha3.PodSchedulingContext" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PodSchedulingContext", "operationId": "replaceResourceV1alpha3NamespacedPodSchedulingContext", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, { "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.v1alpha3.PodSchedulingContext" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/podschedulingcontexts/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified PodSchedulingContext", "operationId": "readResourceV1alpha3NamespacedPodSchedulingContextStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "parameters": [ { "description": "name of the PodSchedulingContext", "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 status of the specified PodSchedulingContext", "operationId": "patchResourceV1alpha3NamespacedPodSchedulingContextStatus", "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.v1alpha3.PodSchedulingContext" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified PodSchedulingContext", "operationId": "replaceResourceV1alpha3NamespacedPodSchedulingContextStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, { "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.v1alpha3.PodSchedulingContext" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.PodSchedulingContext" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ResourceClaim", "operationId": "deleteResourceV1alpha3CollectionNamespacedResourceClaim", "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_v1alpha3" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ResourceClaim", "operationId": "listResourceV1alpha3NamespacedResourceClaim", "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.v1alpha3.ResourceClaimList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ResourceClaim", "operationId": "createResourceV1alpha3NamespacedResourceClaim", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, { "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.v1alpha3.ResourceClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ResourceClaim", "operationId": "deleteResourceV1alpha3NamespacedResourceClaim", "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.v1alpha3.ResourceClaim" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ResourceClaim", "operationId": "readResourceV1alpha3NamespacedResourceClaim", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "parameters": [ { "description": "name of the ResourceClaim", "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 ResourceClaim", "operationId": "patchResourceV1alpha3NamespacedResourceClaim", "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.v1alpha3.ResourceClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ResourceClaim", "operationId": "replaceResourceV1alpha3NamespacedResourceClaim", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, { "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.v1alpha3.ResourceClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaims/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified ResourceClaim", "operationId": "readResourceV1alpha3NamespacedResourceClaimStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "parameters": [ { "description": "name of the ResourceClaim", "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 status of the specified ResourceClaim", "operationId": "patchResourceV1alpha3NamespacedResourceClaimStatus", "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.v1alpha3.ResourceClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified ResourceClaim", "operationId": "replaceResourceV1alpha3NamespacedResourceClaimStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, { "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.v1alpha3.ResourceClaim" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaim" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ResourceClaimTemplate", "operationId": "deleteResourceV1alpha3CollectionNamespacedResourceClaimTemplate", "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_v1alpha3" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ResourceClaimTemplate", "operationId": "listResourceV1alpha3NamespacedResourceClaimTemplate", "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.v1alpha3.ResourceClaimTemplateList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ResourceClaimTemplate", "operationId": "createResourceV1alpha3NamespacedResourceClaimTemplate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, { "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.v1alpha3.ResourceClaimTemplate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/namespaces/{namespace}/resourceclaimtemplates/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ResourceClaimTemplate", "operationId": "deleteResourceV1alpha3NamespacedResourceClaimTemplate", "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.v1alpha3.ResourceClaimTemplate" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ResourceClaimTemplate", "operationId": "readResourceV1alpha3NamespacedResourceClaimTemplate", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "parameters": [ { "description": "name of the ResourceClaimTemplate", "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 ResourceClaimTemplate", "operationId": "patchResourceV1alpha3NamespacedResourceClaimTemplate", "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.v1alpha3.ResourceClaimTemplate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ResourceClaimTemplate", "operationId": "replaceResourceV1alpha3NamespacedResourceClaimTemplate", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, { "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.v1alpha3.ResourceClaimTemplate" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceClaimTemplate" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/podschedulingcontexts": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PodSchedulingContext", "operationId": "listResourceV1alpha3PodSchedulingContextForAllNamespaces", "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.v1alpha3.PodSchedulingContextList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "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/v1alpha3/resourceclaims": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ResourceClaim", "operationId": "listResourceV1alpha3ResourceClaimForAllNamespaces", "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.v1alpha3.ResourceClaimList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "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/v1alpha3/resourceclaimtemplates": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ResourceClaimTemplate", "operationId": "listResourceV1alpha3ResourceClaimTemplateForAllNamespaces", "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.v1alpha3.ResourceClaimTemplateList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "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/v1alpha3/resourceslices": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of ResourceSlice", "operationId": "deleteResourceV1alpha3CollectionResourceSlice", "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_v1alpha3" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind ResourceSlice", "operationId": "listResourceV1alpha3ResourceSlice", "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.v1alpha3.ResourceSliceList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a ResourceSlice", "operationId": "createResourceV1alpha3ResourceSlice", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.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.v1alpha3.ResourceSlice" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceSlice" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/resourceslices/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a ResourceSlice", "operationId": "deleteResourceV1alpha3ResourceSlice", "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.v1alpha3.ResourceSlice" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified ResourceSlice", "operationId": "readResourceV1alpha3ResourceSlice", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } }, "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": "patchResourceV1alpha3ResourceSlice", "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.v1alpha3.ResourceSlice" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified ResourceSlice", "operationId": "replaceResourceV1alpha3ResourceSlice", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.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.v1alpha3.ResourceSlice" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.resource.v1alpha3.ResourceSlice" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "resource_v1alpha3" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } } }, "/apis/resource.k8s.io/v1alpha3/watch/deviceclasses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of DeviceClass. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3DeviceClassList", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } }, "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/v1alpha3/watch/deviceclasses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind DeviceClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchResourceV1alpha3DeviceClass", "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_v1alpha3" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "DeviceClass", "version": "v1alpha3" } }, "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 DeviceClass", "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/resource.k8s.io/v1alpha3/watch/namespaces/{namespace}/podschedulingcontexts": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PodSchedulingContext. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3NamespacedPodSchedulingContextList", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "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/v1alpha3/watch/namespaces/{namespace}/podschedulingcontexts/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PodSchedulingContext. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchResourceV1alpha3NamespacedPodSchedulingContext", "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_v1alpha3" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "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 PodSchedulingContext", "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/v1alpha3/watch/namespaces/{namespace}/resourceclaims": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ResourceClaim. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3NamespacedResourceClaimList", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "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/v1alpha3/watch/namespaces/{namespace}/resourceclaims/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ResourceClaim. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchResourceV1alpha3NamespacedResourceClaim", "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_v1alpha3" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "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 ResourceClaim", "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/v1alpha3/watch/namespaces/{namespace}/resourceclaimtemplates": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ResourceClaimTemplate. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3NamespacedResourceClaimTemplateList", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "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/v1alpha3/watch/namespaces/{namespace}/resourceclaimtemplates/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind ResourceClaimTemplate. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchResourceV1alpha3NamespacedResourceClaimTemplate", "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_v1alpha3" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "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 ResourceClaimTemplate", "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/v1alpha3/watch/podschedulingcontexts": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PodSchedulingContext. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3PodSchedulingContextListForAllNamespaces", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "PodSchedulingContext", "version": "v1alpha3" } }, "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/v1alpha3/watch/resourceclaims": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ResourceClaim. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3ResourceClaimListForAllNamespaces", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaim", "version": "v1alpha3" } }, "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/v1alpha3/watch/resourceclaimtemplates": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ResourceClaimTemplate. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3ResourceClaimTemplateListForAllNamespaces", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceClaimTemplate", "version": "v1alpha3" } }, "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/v1alpha3/watch/resourceslices": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of ResourceSlice. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchResourceV1alpha3ResourceSliceList", "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_v1alpha3" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } }, "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/v1alpha3/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": "watchResourceV1alpha3ResourceSlice", "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_v1alpha3" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "resource.k8s.io", "kind": "ResourceSlice", "version": "v1alpha3" } }, "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": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getSchedulingAPIGroup", "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": [ "scheduling" ] } }, "/apis/scheduling.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getSchedulingV1APIResources", "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": [ "scheduling_v1" ] } }, "/apis/scheduling.k8s.io/v1/priorityclasses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of PriorityClass", "operationId": "deleteSchedulingV1CollectionPriorityClass", "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": [ "scheduling_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind PriorityClass", "operationId": "listSchedulingV1PriorityClass", "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.scheduling.v1.PriorityClassList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "scheduling_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a PriorityClass", "operationId": "createSchedulingV1PriorityClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" } }, { "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.scheduling.v1.PriorityClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "scheduling_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } } }, "/apis/scheduling.k8s.io/v1/priorityclasses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a PriorityClass", "operationId": "deleteSchedulingV1PriorityClass", "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": [ "scheduling_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified PriorityClass", "operationId": "readSchedulingV1PriorityClass", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "scheduling_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } }, "parameters": [ { "description": "name of the PriorityClass", "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 PriorityClass", "operationId": "patchSchedulingV1PriorityClass", "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.scheduling.v1.PriorityClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "scheduling_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified PriorityClass", "operationId": "replaceSchedulingV1PriorityClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" } }, { "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.scheduling.v1.PriorityClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.scheduling.v1.PriorityClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "scheduling_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "version": "v1" } } }, "/apis/scheduling.k8s.io/v1/watch/priorityclasses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchSchedulingV1PriorityClassList", "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": [ "scheduling_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "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/scheduling.k8s.io/v1/watch/priorityclasses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind PriorityClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchSchedulingV1PriorityClass", "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": [ "scheduling_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "scheduling.k8s.io", "kind": "PriorityClass", "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 PriorityClass", "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/storage.k8s.io/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get information of a group", "operationId": "getStorageAPIGroup", "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": [ "storage" ] } }, "/apis/storage.k8s.io/v1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getStorageV1APIResources", "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": [ "storage_v1" ] } }, "/apis/storage.k8s.io/v1/csidrivers": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of CSIDriver", "operationId": "deleteStorageV1CollectionCSIDriver", "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": [ "storage_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CSIDriver", "operationId": "listStorageV1CSIDriver", "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.storage.v1.CSIDriverList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a CSIDriver", "operationId": "createStorageV1CSIDriver", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, { "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.storage.v1.CSIDriver" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } } }, "/apis/storage.k8s.io/v1/csidrivers/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a CSIDriver", "operationId": "deleteStorageV1CSIDriver", "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.storage.v1.CSIDriver" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified CSIDriver", "operationId": "readStorageV1CSIDriver", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } }, "parameters": [ { "description": "name of the CSIDriver", "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 CSIDriver", "operationId": "patchStorageV1CSIDriver", "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.storage.v1.CSIDriver" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified CSIDriver", "operationId": "replaceStorageV1CSIDriver", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, { "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.storage.v1.CSIDriver" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIDriver" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "version": "v1" } } }, "/apis/storage.k8s.io/v1/csinodes": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of CSINode", "operationId": "deleteStorageV1CollectionCSINode", "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": [ "storage_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CSINode", "operationId": "listStorageV1CSINode", "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.storage.v1.CSINodeList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a CSINode", "operationId": "createStorageV1CSINode", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, { "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.storage.v1.CSINode" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } } }, "/apis/storage.k8s.io/v1/csinodes/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a CSINode", "operationId": "deleteStorageV1CSINode", "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.storage.v1.CSINode" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified CSINode", "operationId": "readStorageV1CSINode", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } }, "parameters": [ { "description": "name of the CSINode", "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 CSINode", "operationId": "patchStorageV1CSINode", "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.storage.v1.CSINode" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified CSINode", "operationId": "replaceStorageV1CSINode", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, { "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.storage.v1.CSINode" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSINode" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "version": "v1" } } }, "/apis/storage.k8s.io/v1/csistoragecapacities": { "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CSIStorageCapacity", "operationId": "listStorageV1CSIStorageCapacityForAllNamespaces", "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.storage.v1.CSIStorageCapacityList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "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/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of CSIStorageCapacity", "operationId": "deleteStorageV1CollectionNamespacedCSIStorageCapacity", "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": [ "storage_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind CSIStorageCapacity", "operationId": "listStorageV1NamespacedCSIStorageCapacity", "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.storage.v1.CSIStorageCapacityList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/namespace-vgWSWtn3" }, { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a CSIStorageCapacity", "operationId": "createStorageV1NamespacedCSIStorageCapacity", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" } }, { "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.storage.v1.CSIStorageCapacity" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } } }, "/apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a CSIStorageCapacity", "operationId": "deleteStorageV1NamespacedCSIStorageCapacity", "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": [ "storage_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified CSIStorageCapacity", "operationId": "readStorageV1NamespacedCSIStorageCapacity", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } }, "parameters": [ { "description": "name of the CSIStorageCapacity", "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 CSIStorageCapacity", "operationId": "patchStorageV1NamespacedCSIStorageCapacity", "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.storage.v1.CSIStorageCapacity" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified CSIStorageCapacity", "operationId": "replaceStorageV1NamespacedCSIStorageCapacity", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" } }, { "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.storage.v1.CSIStorageCapacity" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "version": "v1" } } }, "/apis/storage.k8s.io/v1/storageclasses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of StorageClass", "operationId": "deleteStorageV1CollectionStorageClass", "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": [ "storage_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind StorageClass", "operationId": "listStorageV1StorageClass", "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.storage.v1.StorageClassList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a StorageClass", "operationId": "createStorageV1StorageClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, { "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.storage.v1.StorageClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } } }, "/apis/storage.k8s.io/v1/storageclasses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a StorageClass", "operationId": "deleteStorageV1StorageClass", "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.storage.v1.StorageClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified StorageClass", "operationId": "readStorageV1StorageClass", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } }, "parameters": [ { "description": "name of the StorageClass", "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 StorageClass", "operationId": "patchStorageV1StorageClass", "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.storage.v1.StorageClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified StorageClass", "operationId": "replaceStorageV1StorageClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, { "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.storage.v1.StorageClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "version": "v1" } } }, "/apis/storage.k8s.io/v1/volumeattachments": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of VolumeAttachment", "operationId": "deleteStorageV1CollectionVolumeAttachment", "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": [ "storage_v1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind VolumeAttachment", "operationId": "listStorageV1VolumeAttachment", "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.storage.v1.VolumeAttachmentList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a VolumeAttachment", "operationId": "createStorageV1VolumeAttachment", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, { "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.storage.v1.VolumeAttachment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } } }, "/apis/storage.k8s.io/v1/volumeattachments/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a VolumeAttachment", "operationId": "deleteStorageV1VolumeAttachment", "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.storage.v1.VolumeAttachment" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified VolumeAttachment", "operationId": "readStorageV1VolumeAttachment", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } }, "parameters": [ { "description": "name of the VolumeAttachment", "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 VolumeAttachment", "operationId": "patchStorageV1VolumeAttachment", "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.storage.v1.VolumeAttachment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified VolumeAttachment", "operationId": "replaceStorageV1VolumeAttachment", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, { "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.storage.v1.VolumeAttachment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } } }, "/apis/storage.k8s.io/v1/volumeattachments/{name}/status": { "get": { "consumes": [ "*/*" ], "description": "read status of the specified VolumeAttachment", "operationId": "readStorageV1VolumeAttachmentStatus", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } }, "parameters": [ { "description": "name of the VolumeAttachment", "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 VolumeAttachment", "operationId": "patchStorageV1VolumeAttachmentStatus", "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.storage.v1.VolumeAttachment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } }, "put": { "consumes": [ "*/*" ], "description": "replace status of the specified VolumeAttachment", "operationId": "replaceStorageV1VolumeAttachmentStatus", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, { "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.storage.v1.VolumeAttachment" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1.VolumeAttachment" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "version": "v1" } } }, "/apis/storage.k8s.io/v1/watch/csidrivers": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1CSIDriverList", "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": [ "storage_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "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/storage.k8s.io/v1/watch/csidrivers/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind CSIDriver. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchStorageV1CSIDriver", "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": [ "storage_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIDriver", "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 CSIDriver", "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/storage.k8s.io/v1/watch/csinodes": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1CSINodeList", "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": [ "storage_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "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/storage.k8s.io/v1/watch/csinodes/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind CSINode. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchStorageV1CSINode", "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": [ "storage_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSINode", "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 CSINode", "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/storage.k8s.io/v1/watch/csistoragecapacities": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1CSIStorageCapacityListForAllNamespaces", "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": [ "storage_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "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/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1NamespacedCSIStorageCapacityList", "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": [ "storage_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "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/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/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchStorageV1NamespacedCSIStorageCapacity", "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": [ "storage_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "CSIStorageCapacity", "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 CSIStorageCapacity", "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/storage.k8s.io/v1/watch/storageclasses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1StorageClassList", "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": [ "storage_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "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/storage.k8s.io/v1/watch/storageclasses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind StorageClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchStorageV1StorageClass", "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": [ "storage_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "StorageClass", "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 StorageClass", "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/storage.k8s.io/v1/watch/volumeattachments": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1VolumeAttachmentList", "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": [ "storage_v1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "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/storage.k8s.io/v1/watch/volumeattachments/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchStorageV1VolumeAttachment", "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": [ "storage_v1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttachment", "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 VolumeAttachment", "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/storage.k8s.io/v1alpha1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getStorageV1alpha1APIResources", "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": [ "storage_v1alpha1" ] } }, "/apis/storage.k8s.io/v1alpha1/volumeattributesclasses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of VolumeAttributesClass", "operationId": "deleteStorageV1alpha1CollectionVolumeAttributesClass", "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": [ "storage_v1alpha1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind VolumeAttributesClass", "operationId": "listStorageV1alpha1VolumeAttributesClass", "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.storage.v1alpha1.VolumeAttributesClassList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1alpha1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a VolumeAttributesClass", "operationId": "createStorageV1alpha1VolumeAttributesClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, { "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.storage.v1alpha1.VolumeAttributesClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1alpha1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } } }, "/apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a VolumeAttributesClass", "operationId": "deleteStorageV1alpha1VolumeAttributesClass", "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.storage.v1alpha1.VolumeAttributesClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1alpha1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified VolumeAttributesClass", "operationId": "readStorageV1alpha1VolumeAttributesClass", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1alpha1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } }, "parameters": [ { "description": "name of the VolumeAttributesClass", "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 VolumeAttributesClass", "operationId": "patchStorageV1alpha1VolumeAttributesClass", "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.storage.v1alpha1.VolumeAttributesClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1alpha1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified VolumeAttributesClass", "operationId": "replaceStorageV1alpha1VolumeAttributesClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, { "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.storage.v1alpha1.VolumeAttributesClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1alpha1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1alpha1" } } }, "/apis/storage.k8s.io/v1alpha1/watch/volumeattributesclasses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of VolumeAttributesClass. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1alpha1VolumeAttributesClassList", "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": [ "storage_v1alpha1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "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/storage.k8s.io/v1alpha1/watch/volumeattributesclasses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind VolumeAttributesClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchStorageV1alpha1VolumeAttributesClass", "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": [ "storage_v1alpha1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "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 VolumeAttributesClass", "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/storage.k8s.io/v1beta1/": { "get": { "consumes": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "description": "get available resources", "operationId": "getStorageV1beta1APIResources", "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": [ "storage_v1beta1" ] } }, "/apis/storage.k8s.io/v1beta1/volumeattributesclasses": { "delete": { "consumes": [ "*/*" ], "description": "delete collection of VolumeAttributesClass", "operationId": "deleteStorageV1beta1CollectionVolumeAttributesClass", "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": [ "storage_v1beta1" ], "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "list or watch objects of kind VolumeAttributesClass", "operationId": "listStorageV1beta1VolumeAttributesClass", "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.storage.v1beta1.VolumeAttributesClassList" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1beta1" ], "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } }, "parameters": [ { "$ref": "#/parameters/pretty-tJGM1-ng" } ], "post": { "consumes": [ "*/*" ], "description": "create a VolumeAttributesClass", "operationId": "createStorageV1beta1VolumeAttributesClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, { "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.storage.v1beta1.VolumeAttributesClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1beta1" ], "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } } }, "/apis/storage.k8s.io/v1beta1/volumeattributesclasses/{name}": { "delete": { "consumes": [ "*/*" ], "description": "delete a VolumeAttributesClass", "operationId": "deleteStorageV1beta1VolumeAttributesClass", "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.storage.v1beta1.VolumeAttributesClass" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1beta1" ], "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } }, "get": { "consumes": [ "*/*" ], "description": "read the specified VolumeAttributesClass", "operationId": "readStorageV1beta1VolumeAttributesClass", "produces": [ "application/json", "application/yaml", "application/vnd.kubernetes.protobuf" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1beta1" ], "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } }, "parameters": [ { "description": "name of the VolumeAttributesClass", "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 VolumeAttributesClass", "operationId": "patchStorageV1beta1VolumeAttributesClass", "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.storage.v1beta1.VolumeAttributesClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1beta1" ], "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } }, "put": { "consumes": [ "*/*" ], "description": "replace the specified VolumeAttributesClass", "operationId": "replaceStorageV1beta1VolumeAttributesClass", "parameters": [ { "in": "body", "name": "body", "required": true, "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, { "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.storage.v1beta1.VolumeAttributesClass" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttributesClass" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "storage_v1beta1" ], "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } } }, "/apis/storage.k8s.io/v1beta1/watch/volumeattributesclasses": { "get": { "consumes": [ "*/*" ], "description": "watch individual changes to a list of VolumeAttributesClass. deprecated: use the 'watch' parameter with a list operation instead.", "operationId": "watchStorageV1beta1VolumeAttributesClassList", "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": [ "storage_v1beta1" ], "x-kubernetes-action": "watchlist", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } }, "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/storage.k8s.io/v1beta1/watch/volumeattributesclasses/{name}": { "get": { "consumes": [ "*/*" ], "description": "watch changes to an object of kind VolumeAttributesClass. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", "operationId": "watchStorageV1beta1VolumeAttributesClass", "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": [ "storage_v1beta1" ], "x-kubernetes-action": "watch", "x-kubernetes-group-version-kind": { "group": "storage.k8s.io", "kind": "VolumeAttributesClass", "version": "v1beta1" } }, "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 VolumeAttributesClass", "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/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", "responses": { "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "logs" ] } }, "/logs/{logpath}": { "get": { "operationId": "logFileHandler", "responses": { "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "logs" ] }, "parameters": [ { "$ref": "#/parameters/logpath-Noq7euwC" } ] }, "/openid/v1/jwks/": { "get": { "description": "get service account issuer OpenID JSON Web Key Set (contains public token verification keys)", "operationId": "getServiceAccountIssuerOpenIDKeyset", "produces": [ "application/jwk-set+json" ], "responses": { "200": { "description": "OK", "schema": { "type": "string" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "openid" ] } }, "/version/": { "get": { "consumes": [ "application/json" ], "description": "get the code version", "operationId": "getCodeVersion", "produces": [ "application/json" ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" } }, "401": { "description": "Unauthorized" } }, "schemes": [ "https" ], "tags": [ "version" ] } } }, "security": [ { "BearerToken": [] } ], "securityDefinitions": { "BearerToken": { "description": "Bearer Token authentication", "in": "header", "name": "authorization", "type": "apiKey" } }, "swagger": "2.0" } ================================================ FILE: src/Swagger/kube-swagger.yml ================================================ swagger: '2.0' info: title: Kubernetes version: v1.11.2 paths: /api/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available API versions operationId: getCoreAPIVersions produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions' '401': description: Unauthorized schemes: - https tags: - core /api/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getCoreV1APIResources 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: - core_v1 /api/v1/componentstatuses: get: consumes: - '*/*' description: list objects of kind ComponentStatus operationId: listCoreV1ComponentStatus 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.core.v1.ComponentStatusList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ComponentStatus version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/componentstatuses/{name}: get: consumes: - '*/*' description: read the specified ComponentStatus operationId: readCoreV1ComponentStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ComponentStatus' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: ComponentStatus version: v1 parameters: - description: name of the ComponentStatus in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true /api/v1/configmaps: get: consumes: - '*/*' description: list or watch objects of kind ConfigMap operationId: listCoreV1ConfigMapForAllNamespaces 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.core.v1.ConfigMapList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/endpoints: get: consumes: - '*/*' description: list or watch objects of kind Endpoints operationId: listCoreV1EndpointsForAllNamespaces 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.core.v1.EndpointsList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/events: get: consumes: - '*/*' description: list or watch objects of kind Event operationId: listCoreV1EventForAllNamespaces 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.core.v1.EventList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Event version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/limitranges: get: consumes: - '*/*' description: list or watch objects of kind LimitRange operationId: listCoreV1LimitRangeForAllNamespaces 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.core.v1.LimitRangeList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/namespaces: get: consumes: - '*/*' description: list or watch objects of kind Namespace operationId: listCoreV1Namespace parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.NamespaceList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Namespace operationId: createCoreV1Namespace parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 /api/v1/namespaces/{namespace}/bindings: 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Binding operationId: createCoreV1NamespacedBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Binding version: v1 /api/v1/namespaces/{namespace}/configmaps: delete: consumes: - '*/*' description: delete collection of ConfigMap operationId: deleteCoreV1CollectionNamespacedConfigMap parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 get: consumes: - '*/*' description: list or watch objects of kind ConfigMap operationId: listCoreV1NamespacedConfigMap parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.ConfigMapList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ConfigMap operationId: createCoreV1NamespacedConfigMap parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 /api/v1/namespaces/{namespace}/configmaps/{name}: delete: consumes: - '*/*' description: delete a ConfigMap operationId: deleteCoreV1NamespacedConfigMap parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 get: consumes: - '*/*' description: read the specified ConfigMap operationId: readCoreV1NamespacedConfigMap parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 parameters: - description: name of the ConfigMap 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ConfigMap operationId: patchCoreV1NamespacedConfigMap parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 put: consumes: - '*/*' description: replace the specified ConfigMap operationId: replaceCoreV1NamespacedConfigMap parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 /api/v1/namespaces/{namespace}/endpoints: delete: consumes: - '*/*' description: delete collection of Endpoints operationId: deleteCoreV1CollectionNamespacedEndpoints parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 get: consumes: - '*/*' description: list or watch objects of kind Endpoints operationId: listCoreV1NamespacedEndpoints parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.EndpointsList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create Endpoints operationId: createCoreV1NamespacedEndpoints parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 /api/v1/namespaces/{namespace}/endpoints/{name}: delete: consumes: - '*/*' description: delete Endpoints operationId: deleteCoreV1NamespacedEndpoints parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 get: consumes: - '*/*' description: read the specified Endpoints operationId: readCoreV1NamespacedEndpoints parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 parameters: - description: name of the Endpoints 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Endpoints operationId: patchCoreV1NamespacedEndpoints parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 put: consumes: - '*/*' description: replace the specified Endpoints operationId: replaceCoreV1NamespacedEndpoints parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 /api/v1/namespaces/{namespace}/events: delete: consumes: - '*/*' description: delete collection of Event operationId: deleteCoreV1CollectionNamespacedEvent parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: Event version: v1 get: consumes: - '*/*' description: list or watch objects of kind Event operationId: listCoreV1NamespacedEvent parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.EventList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Event version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create an Event operationId: createCoreV1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Event version: v1 /api/v1/namespaces/{namespace}/events/{name}: delete: consumes: - '*/*' description: delete an Event operationId: deleteCoreV1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: Event version: v1 get: consumes: - '*/*' description: read the specified Event operationId: readCoreV1NamespacedEvent parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Event version: v1 parameters: - description: name of the Event 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Event operationId: patchCoreV1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Event version: v1 put: consumes: - '*/*' description: replace the specified Event operationId: replaceCoreV1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Event' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Event version: v1 /api/v1/namespaces/{namespace}/limitranges: delete: consumes: - '*/*' description: delete collection of LimitRange operationId: deleteCoreV1CollectionNamespacedLimitRange parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 get: consumes: - '*/*' description: list or watch objects of kind LimitRange operationId: listCoreV1NamespacedLimitRange parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.LimitRangeList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a LimitRange operationId: createCoreV1NamespacedLimitRange parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 /api/v1/namespaces/{namespace}/limitranges/{name}: delete: consumes: - '*/*' description: delete a LimitRange operationId: deleteCoreV1NamespacedLimitRange parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 get: consumes: - '*/*' description: read the specified LimitRange operationId: readCoreV1NamespacedLimitRange parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 parameters: - description: name of the LimitRange 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified LimitRange operationId: patchCoreV1NamespacedLimitRange parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 put: consumes: - '*/*' description: replace the specified LimitRange operationId: replaceCoreV1NamespacedLimitRange parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 /api/v1/namespaces/{namespace}/persistentvolumeclaims: delete: consumes: - '*/*' description: delete collection of PersistentVolumeClaim operationId: deleteCoreV1CollectionNamespacedPersistentVolumeClaim parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 get: consumes: - '*/*' description: list or watch objects of kind PersistentVolumeClaim operationId: listCoreV1NamespacedPersistentVolumeClaim parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.PersistentVolumeClaimList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PersistentVolumeClaim operationId: createCoreV1NamespacedPersistentVolumeClaim parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}: delete: consumes: - '*/*' description: delete a PersistentVolumeClaim operationId: deleteCoreV1NamespacedPersistentVolumeClaim parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 get: consumes: - '*/*' description: read the specified PersistentVolumeClaim operationId: readCoreV1NamespacedPersistentVolumeClaim parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 parameters: - description: name of the PersistentVolumeClaim 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PersistentVolumeClaim operationId: patchCoreV1NamespacedPersistentVolumeClaim parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 put: consumes: - '*/*' description: replace the specified PersistentVolumeClaim operationId: replaceCoreV1NamespacedPersistentVolumeClaim parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status: get: consumes: - '*/*' description: read status of the specified PersistentVolumeClaim operationId: readCoreV1NamespacedPersistentVolumeClaimStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 parameters: - description: name of the PersistentVolumeClaim 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified PersistentVolumeClaim operationId: patchCoreV1NamespacedPersistentVolumeClaimStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 put: consumes: - '*/*' description: replace status of the specified PersistentVolumeClaim operationId: replaceCoreV1NamespacedPersistentVolumeClaimStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 /api/v1/namespaces/{namespace}/pods: delete: consumes: - '*/*' description: delete collection of Pod operationId: deleteCoreV1CollectionNamespacedPod parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 get: consumes: - '*/*' description: list or watch objects of kind Pod operationId: listCoreV1NamespacedPod parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.PodList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Pod operationId: createCoreV1NamespacedPod parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/pods/{name}: delete: consumes: - '*/*' description: delete a Pod operationId: deleteCoreV1NamespacedPod parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 get: consumes: - '*/*' description: read the specified Pod operationId: readCoreV1NamespacedPod parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: name of the Pod 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Pod operationId: patchCoreV1NamespacedPod parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 put: consumes: - '*/*' description: replace the specified Pod operationId: replaceCoreV1NamespacedPod parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/pods/{name}/attach: get: consumes: - '*/*' description: connect GET requests to attach of Pod operationId: connectCoreV1GetNamespacedPodAttach produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: The container in which to execute the command. Defaults to only container if there is only one container in the pod. in: query name: container type: string uniqueItems: true - description: name of the Pod 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: Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true. in: query name: stderr type: boolean uniqueItems: true - description: Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false. in: query name: stdin type: boolean uniqueItems: true - description: Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true. in: query name: stdout type: boolean uniqueItems: true - description: TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false. in: query name: tty type: boolean uniqueItems: true post: consumes: - '*/*' description: connect POST requests to attach of Pod operationId: connectCoreV1PostNamespacedPodAttach produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/pods/{name}/binding: parameters: - description: name of the Binding 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create binding of a Pod operationId: createCoreV1NamespacedPodBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Binding' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Binding version: v1 /api/v1/namespaces/{namespace}/pods/{name}/eviction: parameters: - description: name of the Eviction 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create eviction of a Pod operationId: createCoreV1NamespacedPodEviction parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.Eviction' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.Eviction' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.Eviction' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.Eviction' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: policy kind: Eviction version: v1beta1 /api/v1/namespaces/{namespace}/pods/{name}/exec: get: consumes: - '*/*' description: connect GET requests to exec of Pod operationId: connectCoreV1GetNamespacedPodExec produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: Command is the remote command to execute. argv array. Not executed within a shell. in: query name: command type: string uniqueItems: true - description: Container in which to execute the command. Defaults to only container if there is only one container in the pod. in: query name: container type: string uniqueItems: true - description: name of the Pod 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: Redirect the standard error stream of the pod for this call. Defaults to true. in: query name: stderr type: boolean uniqueItems: true - description: Redirect the standard input stream of the pod for this call. Defaults to false. in: query name: stdin type: boolean uniqueItems: true - description: Redirect the standard output stream of the pod for this call. Defaults to true. in: query name: stdout type: boolean uniqueItems: true - description: TTY if true indicates that a tty will be allocated for the exec call. Defaults to false. in: query name: tty type: boolean uniqueItems: true post: consumes: - '*/*' description: connect POST requests to exec of Pod operationId: connectCoreV1PostNamespacedPodExec produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/pods/{name}/log: get: consumes: - '*/*' description: read log of the specified Pod operationId: readCoreV1NamespacedPodLog produces: - text/plain - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: The container for which to stream logs. Defaults to only container if there is one container in the pod. in: query name: container type: string uniqueItems: true - description: Follow the log stream of the pod. Defaults to false. in: query name: follow type: boolean uniqueItems: true - description: If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit. in: query name: limitBytes type: integer uniqueItems: true - description: name of the Pod 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. in: query name: pretty type: string uniqueItems: true - description: Return previous terminated container logs. Defaults to false. in: query name: previous type: boolean uniqueItems: true - description: A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified. in: query name: sinceSeconds type: integer uniqueItems: true - description: If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime in: query name: tailLines type: integer uniqueItems: true - description: If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false. in: query name: timestamps type: boolean uniqueItems: true /api/v1/namespaces/{namespace}/pods/{name}/portforward: get: consumes: - '*/*' description: connect GET requests to portforward of Pod operationId: connectCoreV1GetNamespacedPodPortforward produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: name of the Pod 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: List of ports to forward Required when using WebSockets in: query name: ports type: integer uniqueItems: true post: consumes: - '*/*' description: connect POST requests to portforward of Pod operationId: connectCoreV1PostNamespacedPodPortforward produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/pods/{name}/proxy: delete: consumes: - '*/*' description: connect DELETE requests to proxy of Pod operationId: connectCoreV1DeleteNamespacedPodProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 get: consumes: - '*/*' description: connect GET requests to proxy of Pod operationId: connectCoreV1GetNamespacedPodProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 head: consumes: - '*/*' description: connect HEAD requests to proxy of Pod operationId: connectCoreV1HeadNamespacedPodProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 options: consumes: - '*/*' description: connect OPTIONS requests to proxy of Pod operationId: connectCoreV1OptionsNamespacedPodProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: name of the Pod 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: Path is the URL path to use for the current proxy request to pod. in: query name: path type: string uniqueItems: true patch: consumes: - '*/*' description: connect PATCH requests to proxy of Pod operationId: connectCoreV1PatchNamespacedPodProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 post: consumes: - '*/*' description: connect POST requests to proxy of Pod operationId: connectCoreV1PostNamespacedPodProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 put: consumes: - '*/*' description: connect PUT requests to proxy of Pod operationId: connectCoreV1PutNamespacedPodProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}: delete: consumes: - '*/*' description: connect DELETE requests to proxy of Pod operationId: connectCoreV1DeleteNamespacedPodProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 get: consumes: - '*/*' description: connect GET requests to proxy of Pod operationId: connectCoreV1GetNamespacedPodProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 head: consumes: - '*/*' description: connect HEAD requests to proxy of Pod operationId: connectCoreV1HeadNamespacedPodProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 options: consumes: - '*/*' description: connect OPTIONS requests to proxy of Pod operationId: connectCoreV1OptionsNamespacedPodProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: name of the Pod 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: path to the resource in: path name: path required: true type: string uniqueItems: true - description: Path is the URL path to use for the current proxy request to pod. in: query name: path type: string uniqueItems: true patch: consumes: - '*/*' description: connect PATCH requests to proxy of Pod operationId: connectCoreV1PatchNamespacedPodProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 post: consumes: - '*/*' description: connect POST requests to proxy of Pod operationId: connectCoreV1PostNamespacedPodProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 put: consumes: - '*/*' description: connect PUT requests to proxy of Pod operationId: connectCoreV1PutNamespacedPodProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/pods/{name}/status: get: consumes: - '*/*' description: read status of the specified Pod operationId: readCoreV1NamespacedPodStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - description: name of the Pod 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Pod operationId: patchCoreV1NamespacedPodStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 put: consumes: - '*/*' description: replace status of the specified Pod operationId: replaceCoreV1NamespacedPodStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Pod' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 /api/v1/namespaces/{namespace}/podtemplates: delete: consumes: - '*/*' description: delete collection of PodTemplate operationId: deleteCoreV1CollectionNamespacedPodTemplate parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 get: consumes: - '*/*' description: list or watch objects of kind PodTemplate operationId: listCoreV1NamespacedPodTemplate parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.PodTemplateList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PodTemplate operationId: createCoreV1NamespacedPodTemplate parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 /api/v1/namespaces/{namespace}/podtemplates/{name}: delete: consumes: - '*/*' description: delete a PodTemplate operationId: deleteCoreV1NamespacedPodTemplate parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 get: consumes: - '*/*' description: read the specified PodTemplate operationId: readCoreV1NamespacedPodTemplate parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 parameters: - description: name of the PodTemplate 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PodTemplate operationId: patchCoreV1NamespacedPodTemplate parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 put: consumes: - '*/*' description: replace the specified PodTemplate operationId: replaceCoreV1NamespacedPodTemplate parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 /api/v1/namespaces/{namespace}/replicationcontrollers: delete: consumes: - '*/*' description: delete collection of ReplicationController operationId: deleteCoreV1CollectionNamespacedReplicationController parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 get: consumes: - '*/*' description: list or watch objects of kind ReplicationController operationId: listCoreV1NamespacedReplicationController parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.ReplicationControllerList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ReplicationController operationId: createCoreV1NamespacedReplicationController parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 /api/v1/namespaces/{namespace}/replicationcontrollers/{name}: delete: consumes: - '*/*' description: delete a ReplicationController operationId: deleteCoreV1NamespacedReplicationController parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 get: consumes: - '*/*' description: read the specified ReplicationController operationId: readCoreV1NamespacedReplicationController parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 parameters: - description: name of the ReplicationController 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ReplicationController operationId: patchCoreV1NamespacedReplicationController parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 put: consumes: - '*/*' description: replace the specified ReplicationController operationId: replaceCoreV1NamespacedReplicationController parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale: get: consumes: - '*/*' description: read scale of the specified ReplicationController operationId: readCoreV1NamespacedReplicationControllerScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified ReplicationController operationId: patchCoreV1NamespacedReplicationControllerScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 put: consumes: - '*/*' description: replace scale of the specified ReplicationController operationId: replaceCoreV1NamespacedReplicationControllerScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status: get: consumes: - '*/*' description: read status of the specified ReplicationController operationId: readCoreV1NamespacedReplicationControllerStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 parameters: - description: name of the ReplicationController 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified ReplicationController operationId: patchCoreV1NamespacedReplicationControllerStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 put: consumes: - '*/*' description: replace status of the specified ReplicationController operationId: replaceCoreV1NamespacedReplicationControllerStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 /api/v1/namespaces/{namespace}/resourcequotas: delete: consumes: - '*/*' description: delete collection of ResourceQuota operationId: deleteCoreV1CollectionNamespacedResourceQuota parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 get: consumes: - '*/*' description: list or watch objects of kind ResourceQuota operationId: listCoreV1NamespacedResourceQuota parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.ResourceQuotaList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ResourceQuota operationId: createCoreV1NamespacedResourceQuota parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 /api/v1/namespaces/{namespace}/resourcequotas/{name}: delete: consumes: - '*/*' description: delete a ResourceQuota operationId: deleteCoreV1NamespacedResourceQuota parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 get: consumes: - '*/*' description: read the specified ResourceQuota operationId: readCoreV1NamespacedResourceQuota parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 parameters: - description: name of the ResourceQuota 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ResourceQuota operationId: patchCoreV1NamespacedResourceQuota parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 put: consumes: - '*/*' description: replace the specified ResourceQuota operationId: replaceCoreV1NamespacedResourceQuota parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 /api/v1/namespaces/{namespace}/resourcequotas/{name}/status: get: consumes: - '*/*' description: read status of the specified ResourceQuota operationId: readCoreV1NamespacedResourceQuotaStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 parameters: - description: name of the ResourceQuota 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified ResourceQuota operationId: patchCoreV1NamespacedResourceQuotaStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 put: consumes: - '*/*' description: replace status of the specified ResourceQuota operationId: replaceCoreV1NamespacedResourceQuotaStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 /api/v1/namespaces/{namespace}/secrets: delete: consumes: - '*/*' description: delete collection of Secret operationId: deleteCoreV1CollectionNamespacedSecret parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 get: consumes: - '*/*' description: list or watch objects of kind Secret operationId: listCoreV1NamespacedSecret parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.SecretList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Secret operationId: createCoreV1NamespacedSecret parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 /api/v1/namespaces/{namespace}/secrets/{name}: delete: consumes: - '*/*' description: delete a Secret operationId: deleteCoreV1NamespacedSecret parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 get: consumes: - '*/*' description: read the specified Secret operationId: readCoreV1NamespacedSecret parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 parameters: - description: name of the Secret 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Secret operationId: patchCoreV1NamespacedSecret parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 put: consumes: - '*/*' description: replace the specified Secret operationId: replaceCoreV1NamespacedSecret parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Secret' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 /api/v1/namespaces/{namespace}/serviceaccounts: delete: consumes: - '*/*' description: delete collection of ServiceAccount operationId: deleteCoreV1CollectionNamespacedServiceAccount parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 get: consumes: - '*/*' description: list or watch objects of kind ServiceAccount operationId: listCoreV1NamespacedServiceAccount parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.ServiceAccountList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ServiceAccount operationId: createCoreV1NamespacedServiceAccount parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 /api/v1/namespaces/{namespace}/serviceaccounts/{name}: delete: consumes: - '*/*' description: delete a ServiceAccount operationId: deleteCoreV1NamespacedServiceAccount parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 get: consumes: - '*/*' description: read the specified ServiceAccount operationId: readCoreV1NamespacedServiceAccount parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 parameters: - description: name of the ServiceAccount 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ServiceAccount operationId: patchCoreV1NamespacedServiceAccount parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 put: consumes: - '*/*' description: replace the specified ServiceAccount operationId: replaceCoreV1NamespacedServiceAccount parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 /api/v1/namespaces/{namespace}/services: get: consumes: - '*/*' description: list or watch objects of kind Service operationId: listCoreV1NamespacedService parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.ServiceList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Service version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Service operationId: createCoreV1NamespacedService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Service version: v1 /api/v1/namespaces/{namespace}/services/{name}: delete: consumes: - '*/*' description: delete a Service operationId: deleteCoreV1NamespacedService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: Service version: v1 get: consumes: - '*/*' description: read the specified Service operationId: readCoreV1NamespacedService parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - description: name of the Service 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Service operationId: patchCoreV1NamespacedService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Service version: v1 put: consumes: - '*/*' description: replace the specified Service operationId: replaceCoreV1NamespacedService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Service version: v1 /api/v1/namespaces/{namespace}/services/{name}/proxy: delete: consumes: - '*/*' description: connect DELETE requests to proxy of Service operationId: connectCoreV1DeleteNamespacedServiceProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 get: consumes: - '*/*' description: connect GET requests to proxy of Service operationId: connectCoreV1GetNamespacedServiceProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 head: consumes: - '*/*' description: connect HEAD requests to proxy of Service operationId: connectCoreV1HeadNamespacedServiceProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 options: consumes: - '*/*' description: connect OPTIONS requests to proxy of Service operationId: connectCoreV1OptionsNamespacedServiceProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - description: name of the Service 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: Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy. in: query name: path type: string uniqueItems: true patch: consumes: - '*/*' description: connect PATCH requests to proxy of Service operationId: connectCoreV1PatchNamespacedServiceProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 post: consumes: - '*/*' description: connect POST requests to proxy of Service operationId: connectCoreV1PostNamespacedServiceProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 put: consumes: - '*/*' description: connect PUT requests to proxy of Service operationId: connectCoreV1PutNamespacedServiceProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 /api/v1/namespaces/{namespace}/services/{name}/proxy/{path}: delete: consumes: - '*/*' description: connect DELETE requests to proxy of Service operationId: connectCoreV1DeleteNamespacedServiceProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 get: consumes: - '*/*' description: connect GET requests to proxy of Service operationId: connectCoreV1GetNamespacedServiceProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 head: consumes: - '*/*' description: connect HEAD requests to proxy of Service operationId: connectCoreV1HeadNamespacedServiceProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 options: consumes: - '*/*' description: connect OPTIONS requests to proxy of Service operationId: connectCoreV1OptionsNamespacedServiceProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - description: name of the Service 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: path to the resource in: path name: path required: true type: string uniqueItems: true - description: Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy. in: query name: path type: string uniqueItems: true patch: consumes: - '*/*' description: connect PATCH requests to proxy of Service operationId: connectCoreV1PatchNamespacedServiceProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 post: consumes: - '*/*' description: connect POST requests to proxy of Service operationId: connectCoreV1PostNamespacedServiceProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 put: consumes: - '*/*' description: connect PUT requests to proxy of Service operationId: connectCoreV1PutNamespacedServiceProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Service version: v1 /api/v1/namespaces/{namespace}/services/{name}/status: get: consumes: - '*/*' description: read status of the specified Service operationId: readCoreV1NamespacedServiceStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - description: name of the Service 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Service operationId: patchCoreV1NamespacedServiceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Service version: v1 put: consumes: - '*/*' description: replace status of the specified Service operationId: replaceCoreV1NamespacedServiceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Service' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Service version: v1 /api/v1/namespaces/{name}: delete: consumes: - '*/*' description: delete a Namespace operationId: deleteCoreV1Namespace parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 get: consumes: - '*/*' description: read the specified Namespace operationId: readCoreV1Namespace parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 parameters: - description: name of the Namespace in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Namespace operationId: patchCoreV1Namespace parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 put: consumes: - '*/*' description: replace the specified Namespace operationId: replaceCoreV1Namespace parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 /api/v1/namespaces/{name}/finalize: parameters: - description: name of the Namespace in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true put: consumes: - '*/*' description: replace finalize of the specified Namespace operationId: replaceCoreV1NamespaceFinalize parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 /api/v1/namespaces/{name}/status: get: consumes: - '*/*' description: read status of the specified Namespace operationId: readCoreV1NamespaceStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 parameters: - description: name of the Namespace in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Namespace operationId: patchCoreV1NamespaceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 put: consumes: - '*/*' description: replace status of the specified Namespace operationId: replaceCoreV1NamespaceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 /api/v1/nodes: delete: consumes: - '*/*' description: delete collection of Node operationId: deleteCoreV1CollectionNode parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: Node version: v1 get: consumes: - '*/*' description: list or watch objects of kind Node operationId: listCoreV1Node parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.NodeList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Node version: v1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Node operationId: createCoreV1Node parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: Node version: v1 /api/v1/nodes/{name}: delete: consumes: - '*/*' description: delete a Node operationId: deleteCoreV1Node parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: Node version: v1 get: consumes: - '*/*' description: read the specified Node operationId: readCoreV1Node parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Node version: v1 parameters: - description: name of the Node in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Node operationId: patchCoreV1Node parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Node version: v1 put: consumes: - '*/*' description: replace the specified Node operationId: replaceCoreV1Node parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Node version: v1 /api/v1/nodes/{name}/proxy: delete: consumes: - '*/*' description: connect DELETE requests to proxy of Node operationId: connectCoreV1DeleteNodeProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 get: consumes: - '*/*' description: connect GET requests to proxy of Node operationId: connectCoreV1GetNodeProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 head: consumes: - '*/*' description: connect HEAD requests to proxy of Node operationId: connectCoreV1HeadNodeProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 options: consumes: - '*/*' description: connect OPTIONS requests to proxy of Node operationId: connectCoreV1OptionsNodeProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 parameters: - description: name of the Node in: path name: name required: true type: string uniqueItems: true - description: Path is the URL path to use for the current proxy request to node. in: query name: path type: string uniqueItems: true patch: consumes: - '*/*' description: connect PATCH requests to proxy of Node operationId: connectCoreV1PatchNodeProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 post: consumes: - '*/*' description: connect POST requests to proxy of Node operationId: connectCoreV1PostNodeProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 put: consumes: - '*/*' description: connect PUT requests to proxy of Node operationId: connectCoreV1PutNodeProxy produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 /api/v1/nodes/{name}/proxy/{path}: delete: consumes: - '*/*' description: connect DELETE requests to proxy of Node operationId: connectCoreV1DeleteNodeProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 get: consumes: - '*/*' description: connect GET requests to proxy of Node operationId: connectCoreV1GetNodeProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 head: consumes: - '*/*' description: connect HEAD requests to proxy of Node operationId: connectCoreV1HeadNodeProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 options: consumes: - '*/*' description: connect OPTIONS requests to proxy of Node operationId: connectCoreV1OptionsNodeProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 parameters: - description: name of the Node in: path name: name required: true type: string uniqueItems: true - description: path to the resource in: path name: path required: true type: string uniqueItems: true - description: Path is the URL path to use for the current proxy request to node. in: query name: path type: string uniqueItems: true patch: consumes: - '*/*' description: connect PATCH requests to proxy of Node operationId: connectCoreV1PatchNodeProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 post: consumes: - '*/*' description: connect POST requests to proxy of Node operationId: connectCoreV1PostNodeProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 put: consumes: - '*/*' description: connect PUT requests to proxy of Node operationId: connectCoreV1PutNodeProxyWithPath produces: - '*/*' responses: '200': description: OK schema: type: string '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: connect x-kubernetes-group-version-kind: group: '' kind: Node version: v1 /api/v1/nodes/{name}/status: get: consumes: - '*/*' description: read status of the specified Node operationId: readCoreV1NodeStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: Node version: v1 parameters: - description: name of the Node in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Node operationId: patchCoreV1NodeStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: Node version: v1 put: consumes: - '*/*' description: replace status of the specified Node operationId: replaceCoreV1NodeStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.Node' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: Node version: v1 /api/v1/persistentvolumeclaims: get: consumes: - '*/*' description: list or watch objects of kind PersistentVolumeClaim operationId: listCoreV1PersistentVolumeClaimForAllNamespaces 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.core.v1.PersistentVolumeClaimList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/persistentvolumes: delete: consumes: - '*/*' description: delete collection of PersistentVolume operationId: deleteCoreV1CollectionPersistentVolume parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 get: consumes: - '*/*' description: list or watch objects of kind PersistentVolume operationId: listCoreV1PersistentVolume parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.core.v1.PersistentVolumeList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PersistentVolume operationId: createCoreV1PersistentVolume parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 /api/v1/persistentvolumes/{name}: delete: consumes: - '*/*' description: delete a PersistentVolume operationId: deleteCoreV1PersistentVolume parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 get: consumes: - '*/*' description: read the specified PersistentVolume operationId: readCoreV1PersistentVolume parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 parameters: - description: name of the PersistentVolume in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PersistentVolume operationId: patchCoreV1PersistentVolume parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 put: consumes: - '*/*' description: replace the specified PersistentVolume operationId: replaceCoreV1PersistentVolume parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 /api/v1/persistentvolumes/{name}/status: get: consumes: - '*/*' description: read status of the specified PersistentVolume operationId: readCoreV1PersistentVolumeStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 parameters: - description: name of the PersistentVolume in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified PersistentVolume operationId: patchCoreV1PersistentVolumeStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 put: consumes: - '*/*' description: replace status of the specified PersistentVolume operationId: replaceCoreV1PersistentVolumeStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 /api/v1/pods: get: consumes: - '*/*' description: list or watch objects of kind Pod operationId: listCoreV1PodForAllNamespaces 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.core.v1.PodList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/podtemplates: get: consumes: - '*/*' description: list or watch objects of kind PodTemplate operationId: listCoreV1PodTemplateForAllNamespaces 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.core.v1.PodTemplateList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/replicationcontrollers: get: consumes: - '*/*' description: list or watch objects of kind ReplicationController operationId: listCoreV1ReplicationControllerForAllNamespaces 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.core.v1.ReplicationControllerList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/resourcequotas: get: consumes: - '*/*' description: list or watch objects of kind ResourceQuota operationId: listCoreV1ResourceQuotaForAllNamespaces 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.core.v1.ResourceQuotaList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/secrets: get: consumes: - '*/*' description: list or watch objects of kind Secret operationId: listCoreV1SecretForAllNamespaces 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.core.v1.SecretList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/serviceaccounts: get: consumes: - '*/*' description: list or watch objects of kind ServiceAccount operationId: listCoreV1ServiceAccountForAllNamespaces 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.core.v1.ServiceAccountList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/services: get: consumes: - '*/*' description: list or watch objects of kind Service operationId: listCoreV1ServiceForAllNamespaces 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.core.v1.ServiceList' '401': description: Unauthorized schemes: - https tags: - core_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/configmaps: get: consumes: - '*/*' description: watch individual changes to a list of ConfigMap operationId: watchCoreV1ConfigMapListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/endpoints: get: consumes: - '*/*' description: watch individual changes to a list of Endpoints operationId: watchCoreV1EndpointsListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/events: get: consumes: - '*/*' description: watch individual changes to a list of Event operationId: watchCoreV1EventListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Event version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/limitranges: get: consumes: - '*/*' description: watch individual changes to a list of LimitRange operationId: watchCoreV1LimitRangeListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces: get: consumes: - '*/*' description: watch individual changes to a list of Namespace operationId: watchCoreV1NamespaceList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/configmaps: get: consumes: - '*/*' description: watch individual changes to a list of ConfigMap operationId: watchCoreV1NamespacedConfigMapList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/configmaps/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ConfigMap operationId: watchCoreV1NamespacedConfigMap 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: ConfigMap version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ConfigMap 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/endpoints: get: consumes: - '*/*' description: watch individual changes to a list of Endpoints operationId: watchCoreV1NamespacedEndpointsList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/endpoints/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Endpoints operationId: watchCoreV1NamespacedEndpoints 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: Endpoints version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Endpoints 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/events: get: consumes: - '*/*' description: watch individual changes to a list of Event operationId: watchCoreV1NamespacedEventList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Event version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/events/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Event operationId: watchCoreV1NamespacedEvent 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: Event version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Event 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/limitranges: get: consumes: - '*/*' description: watch individual changes to a list of LimitRange operationId: watchCoreV1NamespacedLimitRangeList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/limitranges/{name}: get: consumes: - '*/*' description: watch changes to an object of kind LimitRange operationId: watchCoreV1NamespacedLimitRange 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: LimitRange version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the LimitRange 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/persistentvolumeclaims: get: consumes: - '*/*' description: watch individual changes to a list of PersistentVolumeClaim operationId: watchCoreV1NamespacedPersistentVolumeClaimList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PersistentVolumeClaim operationId: watchCoreV1NamespacedPersistentVolumeClaim 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PersistentVolumeClaim 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/pods: get: consumes: - '*/*' description: watch individual changes to a list of Pod operationId: watchCoreV1NamespacedPodList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/pods/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Pod operationId: watchCoreV1NamespacedPod 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Pod 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/podtemplates: get: consumes: - '*/*' description: watch individual changes to a list of PodTemplate operationId: watchCoreV1NamespacedPodTemplateList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/podtemplates/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PodTemplate operationId: watchCoreV1NamespacedPodTemplate 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PodTemplate 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/replicationcontrollers: get: consumes: - '*/*' description: watch individual changes to a list of ReplicationController operationId: watchCoreV1NamespacedReplicationControllerList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ReplicationController operationId: watchCoreV1NamespacedReplicationController 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ReplicationController 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/resourcequotas: get: consumes: - '*/*' description: watch individual changes to a list of ResourceQuota operationId: watchCoreV1NamespacedResourceQuotaList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/resourcequotas/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ResourceQuota operationId: watchCoreV1NamespacedResourceQuota 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ResourceQuota 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/secrets: get: consumes: - '*/*' description: watch individual changes to a list of Secret operationId: watchCoreV1NamespacedSecretList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/secrets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Secret operationId: watchCoreV1NamespacedSecret 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Secret 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/serviceaccounts: get: consumes: - '*/*' description: watch individual changes to a list of ServiceAccount operationId: watchCoreV1NamespacedServiceAccountList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ServiceAccount operationId: watchCoreV1NamespacedServiceAccount 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ServiceAccount 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/services: get: consumes: - '*/*' description: watch individual changes to a list of Service operationId: watchCoreV1NamespacedServiceList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{namespace}/services/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Service operationId: watchCoreV1NamespacedService 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Service 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/namespaces/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Namespace operationId: watchCoreV1Namespace 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: Namespace version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Namespace in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/nodes: get: consumes: - '*/*' description: watch individual changes to a list of Node operationId: watchCoreV1NodeList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Node version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/nodes/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Node operationId: watchCoreV1Node 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: Node version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Node in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/persistentvolumeclaims: get: consumes: - '*/*' description: watch individual changes to a list of PersistentVolumeClaim operationId: watchCoreV1PersistentVolumeClaimListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: PersistentVolumeClaim version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/persistentvolumes: get: consumes: - '*/*' description: watch individual changes to a list of PersistentVolume operationId: watchCoreV1PersistentVolumeList 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/persistentvolumes/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PersistentVolume operationId: watchCoreV1PersistentVolume 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: - core_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: '' kind: PersistentVolume version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PersistentVolume in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/pods: get: consumes: - '*/*' description: watch individual changes to a list of Pod operationId: watchCoreV1PodListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Pod version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/podtemplates: get: consumes: - '*/*' description: watch individual changes to a list of PodTemplate operationId: watchCoreV1PodTemplateListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: PodTemplate version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/replicationcontrollers: get: consumes: - '*/*' description: watch individual changes to a list of ReplicationController operationId: watchCoreV1ReplicationControllerListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ReplicationController version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/resourcequotas: get: consumes: - '*/*' description: watch individual changes to a list of ResourceQuota operationId: watchCoreV1ResourceQuotaListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ResourceQuota version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/secrets: get: consumes: - '*/*' description: watch individual changes to a list of Secret operationId: watchCoreV1SecretListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Secret version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/serviceaccounts: get: consumes: - '*/*' description: watch individual changes to a list of ServiceAccount operationId: watchCoreV1ServiceAccountListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: ServiceAccount version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 /api/v1/watch/services: get: consumes: - '*/*' description: watch individual changes to a list of Service operationId: watchCoreV1ServiceListForAllNamespaces 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: - core_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: '' kind: Service version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available API versions operationId: getAPIVersions produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList' '401': description: Unauthorized schemes: - https tags: - apis /apis/admissionregistration.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getAdmissionregistrationAPIGroup 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: - admissionregistration /apis/admissionregistration.k8s.io/v1alpha1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAdmissionregistrationV1alpha1APIResources 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: - admissionregistration_v1alpha1 /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations: delete: consumes: - '*/*' description: delete collection of InitializerConfiguration operationId: deleteAdmissionregistrationV1alpha1CollectionInitializerConfiguration parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind InitializerConfiguration operationId: listAdmissionregistrationV1alpha1InitializerConfiguration parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create an InitializerConfiguration operationId: createAdmissionregistrationV1alpha1InitializerConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}: delete: consumes: - '*/*' description: delete an InitializerConfiguration operationId: deleteAdmissionregistrationV1alpha1InitializerConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 get: consumes: - '*/*' description: read the specified InitializerConfiguration operationId: readAdmissionregistrationV1alpha1InitializerConfiguration parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 parameters: - description: name of the InitializerConfiguration in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified InitializerConfiguration operationId: patchAdmissionregistrationV1alpha1InitializerConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 put: consumes: - '*/*' description: replace the specified InitializerConfiguration operationId: replaceAdmissionregistrationV1alpha1InitializerConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 /apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations: get: consumes: - '*/*' description: watch individual changes to a list of InitializerConfiguration operationId: watchAdmissionregistrationV1alpha1InitializerConfigurationList 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_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1alpha1/watch/initializerconfigurations/{name}: get: consumes: - '*/*' description: watch changes to an object of kind InitializerConfiguration operationId: watchAdmissionregistrationV1alpha1InitializerConfiguration 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_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the InitializerConfiguration in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAdmissionregistrationV1beta1APIResources 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: - admissionregistration_v1beta1 /apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations: delete: consumes: - '*/*' description: delete collection of MutatingWebhookConfiguration operationId: deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind MutatingWebhookConfiguration operationId: listAdmissionregistrationV1beta1MutatingWebhookConfiguration parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a MutatingWebhookConfiguration operationId: createAdmissionregistrationV1beta1MutatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 /apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}: delete: consumes: - '*/*' description: delete a MutatingWebhookConfiguration operationId: deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 get: consumes: - '*/*' description: read the specified MutatingWebhookConfiguration operationId: readAdmissionregistrationV1beta1MutatingWebhookConfiguration parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 parameters: - description: name of the MutatingWebhookConfiguration in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified MutatingWebhookConfiguration operationId: patchAdmissionregistrationV1beta1MutatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 put: consumes: - '*/*' description: replace the specified MutatingWebhookConfiguration operationId: replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations: delete: consumes: - '*/*' description: delete collection of ValidatingWebhookConfiguration operationId: deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind ValidatingWebhookConfiguration operationId: listAdmissionregistrationV1beta1ValidatingWebhookConfiguration parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ValidatingWebhookConfiguration operationId: createAdmissionregistrationV1beta1ValidatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}: delete: consumes: - '*/*' description: delete a ValidatingWebhookConfiguration operationId: deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 get: consumes: - '*/*' description: read the specified ValidatingWebhookConfiguration operationId: readAdmissionregistrationV1beta1ValidatingWebhookConfiguration parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 parameters: - description: name of the ValidatingWebhookConfiguration in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ValidatingWebhookConfiguration operationId: patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 put: consumes: - '*/*' description: replace the specified ValidatingWebhookConfiguration operationId: replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' '401': description: Unauthorized schemes: - https tags: - admissionregistration_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 /apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations: get: consumes: - '*/*' description: watch individual changes to a list of MutatingWebhookConfiguration operationId: watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList 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_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1beta1/watch/mutatingwebhookconfigurations/{name}: get: consumes: - '*/*' description: watch changes to an object of kind MutatingWebhookConfiguration operationId: watchAdmissionregistrationV1beta1MutatingWebhookConfiguration 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_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the MutatingWebhookConfiguration in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1beta1/watch/validatingwebhookconfigurations: get: consumes: - '*/*' description: watch individual changes to a list of ValidatingWebhookConfiguration operationId: watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList 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_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1beta1/watch/validatingwebhookconfigurations/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ValidatingWebhookConfiguration operationId: watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration 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_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ValidatingWebhookConfiguration in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apiextensions.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getApiextensionsAPIGroup 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: - apiextensions /apis/apiextensions.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getApiextensionsV1beta1APIResources 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: - apiextensions_v1beta1 /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions: delete: consumes: - '*/*' description: delete collection of CustomResourceDefinition operationId: deleteApiextensionsV1beta1CollectionCustomResourceDefinition parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind CustomResourceDefinition operationId: listApiextensionsV1beta1CustomResourceDefinition parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a CustomResourceDefinition operationId: createApiextensionsV1beta1CustomResourceDefinition parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '201': description: Created schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}: delete: consumes: - '*/*' description: delete a CustomResourceDefinition operationId: deleteApiextensionsV1beta1CustomResourceDefinition parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 get: consumes: - '*/*' description: read the specified CustomResourceDefinition operationId: readApiextensionsV1beta1CustomResourceDefinition parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 parameters: - description: name of the CustomResourceDefinition in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified CustomResourceDefinition operationId: patchApiextensionsV1beta1CustomResourceDefinition parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 put: consumes: - '*/*' description: replace the specified CustomResourceDefinition operationId: replaceApiextensionsV1beta1CustomResourceDefinition parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '201': description: Created schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status: get: consumes: - '*/*' description: read status of the specified CustomResourceDefinition operationId: readApiextensionsV1beta1CustomResourceDefinitionStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 parameters: - description: name of the CustomResourceDefinition in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified CustomResourceDefinition operationId: patchApiextensionsV1beta1CustomResourceDefinitionStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 put: consumes: - '*/*' description: replace status of the specified CustomResourceDefinition operationId: replaceApiextensionsV1beta1CustomResourceDefinitionStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '201': description: Created schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' '401': description: Unauthorized schemes: - https tags: - apiextensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 /apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions: get: consumes: - '*/*' description: watch individual changes to a list of CustomResourceDefinition operationId: watchApiextensionsV1beta1CustomResourceDefinitionList 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: - apiextensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}: get: consumes: - '*/*' description: watch changes to an object of kind CustomResourceDefinition operationId: watchApiextensionsV1beta1CustomResourceDefinition 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: - apiextensions_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the CustomResourceDefinition in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apiregistration.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getApiregistrationAPIGroup 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: - apiregistration /apis/apiregistration.k8s.io/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getApiregistrationV1APIResources 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: - apiregistration_v1 /apis/apiregistration.k8s.io/v1/apiservices: delete: consumes: - '*/*' description: delete collection of APIService operationId: deleteApiregistrationV1CollectionAPIService parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 get: consumes: - '*/*' description: list or watch objects of kind APIService operationId: listApiregistrationV1APIService parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create an APIService operationId: createApiregistrationV1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '201': description: Created schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 /apis/apiregistration.k8s.io/v1/apiservices/{name}: delete: consumes: - '*/*' description: delete an APIService operationId: deleteApiregistrationV1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 get: consumes: - '*/*' description: read the specified APIService operationId: readApiregistrationV1APIService parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 parameters: - description: name of the APIService in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified APIService operationId: patchApiregistrationV1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 put: consumes: - '*/*' description: replace the specified APIService operationId: replaceApiregistrationV1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '201': description: Created schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 /apis/apiregistration.k8s.io/v1/apiservices/{name}/status: get: consumes: - '*/*' description: read status of the specified APIService operationId: readApiregistrationV1APIServiceStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 parameters: - description: name of the APIService in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified APIService operationId: patchApiregistrationV1APIServiceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 put: consumes: - '*/*' description: replace status of the specified APIService operationId: replaceApiregistrationV1APIServiceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '201': description: Created schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 /apis/apiregistration.k8s.io/v1/watch/apiservices: get: consumes: - '*/*' description: watch individual changes to a list of APIService operationId: watchApiregistrationV1APIServiceList 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: - apiregistration_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apiregistration.k8s.io/v1/watch/apiservices/{name}: get: consumes: - '*/*' description: watch changes to an object of kind APIService operationId: watchApiregistrationV1APIService 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: - apiregistration_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the APIService in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apiregistration.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getApiregistrationV1beta1APIResources 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: - apiregistration_v1beta1 /apis/apiregistration.k8s.io/v1beta1/apiservices: delete: consumes: - '*/*' description: delete collection of APIService operationId: deleteApiregistrationV1beta1CollectionAPIService parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind APIService operationId: listApiregistrationV1beta1APIService parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create an APIService operationId: createApiregistrationV1beta1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '201': description: Created schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 /apis/apiregistration.k8s.io/v1beta1/apiservices/{name}: delete: consumes: - '*/*' description: delete an APIService operationId: deleteApiregistrationV1beta1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 get: consumes: - '*/*' description: read the specified APIService operationId: readApiregistrationV1beta1APIService parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 parameters: - description: name of the APIService in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified APIService operationId: patchApiregistrationV1beta1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 put: consumes: - '*/*' description: replace the specified APIService operationId: replaceApiregistrationV1beta1APIService parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '201': description: Created schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 /apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status: get: consumes: - '*/*' description: read status of the specified APIService operationId: readApiregistrationV1beta1APIServiceStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 parameters: - description: name of the APIService in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified APIService operationId: patchApiregistrationV1beta1APIServiceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 put: consumes: - '*/*' description: replace status of the specified APIService operationId: replaceApiregistrationV1beta1APIServiceStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '201': description: Created schema: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' '401': description: Unauthorized schemes: - https tags: - apiregistration_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 /apis/apiregistration.k8s.io/v1beta1/watch/apiservices: get: consumes: - '*/*' description: watch individual changes to a list of APIService operationId: watchApiregistrationV1beta1APIServiceList 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: - apiregistration_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}: get: consumes: - '*/*' description: watch changes to an object of kind APIService operationId: watchApiregistrationV1beta1APIService 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: - apiregistration_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apiregistration.k8s.io kind: APIService version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the APIService in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getAppsAPIGroup 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: - apps /apis/apps/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAppsV1APIResources 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: - apps_v1 /apis/apps/v1/controllerrevisions: get: consumes: - '*/*' description: list or watch objects of kind ControllerRevision operationId: listAppsV1ControllerRevisionForAllNamespaces 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.apps.v1.ControllerRevisionList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/daemonsets: get: consumes: - '*/*' description: list or watch objects of kind DaemonSet operationId: listAppsV1DaemonSetForAllNamespaces 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.apps.v1.DaemonSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/deployments: get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listAppsV1DeploymentForAllNamespaces 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.apps.v1.DeploymentList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/namespaces/{namespace}/controllerrevisions: delete: consumes: - '*/*' description: delete collection of ControllerRevision operationId: deleteAppsV1CollectionNamespacedControllerRevision parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 get: consumes: - '*/*' description: list or watch objects of kind ControllerRevision operationId: listAppsV1NamespacedControllerRevision parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1.ControllerRevisionList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ControllerRevision operationId: createAppsV1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 /apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}: delete: consumes: - '*/*' description: delete a ControllerRevision operationId: deleteAppsV1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 get: consumes: - '*/*' description: read the specified ControllerRevision operationId: readAppsV1NamespacedControllerRevision parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 parameters: - description: name of the ControllerRevision 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ControllerRevision operationId: patchAppsV1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 put: consumes: - '*/*' description: replace the specified ControllerRevision operationId: replaceAppsV1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 /apis/apps/v1/namespaces/{namespace}/daemonsets: delete: consumes: - '*/*' description: delete collection of DaemonSet operationId: deleteAppsV1CollectionNamespacedDaemonSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 get: consumes: - '*/*' description: list or watch objects of kind DaemonSet operationId: listAppsV1NamespacedDaemonSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1.DaemonSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a DaemonSet operationId: createAppsV1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}: delete: consumes: - '*/*' description: delete a DaemonSet operationId: deleteAppsV1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 get: consumes: - '*/*' description: read the specified DaemonSet operationId: readAppsV1NamespacedDaemonSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 parameters: - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified DaemonSet operationId: patchAppsV1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 put: consumes: - '*/*' description: replace the specified DaemonSet operationId: replaceAppsV1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 /apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status: get: consumes: - '*/*' description: read status of the specified DaemonSet operationId: readAppsV1NamespacedDaemonSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 parameters: - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified DaemonSet operationId: patchAppsV1NamespacedDaemonSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 put: consumes: - '*/*' description: replace status of the specified DaemonSet operationId: replaceAppsV1NamespacedDaemonSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 /apis/apps/v1/namespaces/{namespace}/deployments: delete: consumes: - '*/*' description: delete collection of Deployment operationId: deleteAppsV1CollectionNamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listAppsV1NamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1.DeploymentList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Deployment operationId: createAppsV1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 /apis/apps/v1/namespaces/{namespace}/deployments/{name}: delete: consumes: - '*/*' description: delete a Deployment operationId: deleteAppsV1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 get: consumes: - '*/*' description: read the specified Deployment operationId: readAppsV1NamespacedDeployment parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Deployment operationId: patchAppsV1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 put: consumes: - '*/*' description: replace the specified Deployment operationId: replaceAppsV1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 /apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale: get: consumes: - '*/*' description: read scale of the specified Deployment operationId: readAppsV1NamespacedDeploymentScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified Deployment operationId: patchAppsV1NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 put: consumes: - '*/*' description: replace scale of the specified Deployment operationId: replaceAppsV1NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 /apis/apps/v1/namespaces/{namespace}/deployments/{name}/status: get: consumes: - '*/*' description: read status of the specified Deployment operationId: readAppsV1NamespacedDeploymentStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Deployment operationId: patchAppsV1NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 put: consumes: - '*/*' description: replace status of the specified Deployment operationId: replaceAppsV1NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 /apis/apps/v1/namespaces/{namespace}/replicasets: delete: consumes: - '*/*' description: delete collection of ReplicaSet operationId: deleteAppsV1CollectionNamespacedReplicaSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 get: consumes: - '*/*' description: list or watch objects of kind ReplicaSet operationId: listAppsV1NamespacedReplicaSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1.ReplicaSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ReplicaSet operationId: createAppsV1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 /apis/apps/v1/namespaces/{namespace}/replicasets/{name}: delete: consumes: - '*/*' description: delete a ReplicaSet operationId: deleteAppsV1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 get: consumes: - '*/*' description: read the specified ReplicaSet operationId: readAppsV1NamespacedReplicaSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 parameters: - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ReplicaSet operationId: patchAppsV1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 put: consumes: - '*/*' description: replace the specified ReplicaSet operationId: replaceAppsV1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale: get: consumes: - '*/*' description: read scale of the specified ReplicaSet operationId: readAppsV1NamespacedReplicaSetScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified ReplicaSet operationId: patchAppsV1NamespacedReplicaSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 put: consumes: - '*/*' description: replace scale of the specified ReplicaSet operationId: replaceAppsV1NamespacedReplicaSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 /apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status: get: consumes: - '*/*' description: read status of the specified ReplicaSet operationId: readAppsV1NamespacedReplicaSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 parameters: - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified ReplicaSet operationId: patchAppsV1NamespacedReplicaSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 put: consumes: - '*/*' description: replace status of the specified ReplicaSet operationId: replaceAppsV1NamespacedReplicaSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 /apis/apps/v1/namespaces/{namespace}/statefulsets: delete: consumes: - '*/*' description: delete collection of StatefulSet operationId: deleteAppsV1CollectionNamespacedStatefulSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 get: consumes: - '*/*' description: list or watch objects of kind StatefulSet operationId: listAppsV1NamespacedStatefulSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1.StatefulSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a StatefulSet operationId: createAppsV1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}: delete: consumes: - '*/*' description: delete a StatefulSet operationId: deleteAppsV1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 get: consumes: - '*/*' description: read the specified StatefulSet operationId: readAppsV1NamespacedStatefulSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 parameters: - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified StatefulSet operationId: patchAppsV1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 put: consumes: - '*/*' description: replace the specified StatefulSet operationId: replaceAppsV1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale: get: consumes: - '*/*' description: read scale of the specified StatefulSet operationId: readAppsV1NamespacedStatefulSetScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified StatefulSet operationId: patchAppsV1NamespacedStatefulSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 put: consumes: - '*/*' description: replace scale of the specified StatefulSet operationId: replaceAppsV1NamespacedStatefulSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: Scale version: v1 /apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status: get: consumes: - '*/*' description: read status of the specified StatefulSet operationId: readAppsV1NamespacedStatefulSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 parameters: - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified StatefulSet operationId: patchAppsV1NamespacedStatefulSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 put: consumes: - '*/*' description: replace status of the specified StatefulSet operationId: replaceAppsV1NamespacedStatefulSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 /apis/apps/v1/replicasets: get: consumes: - '*/*' description: list or watch objects of kind ReplicaSet operationId: listAppsV1ReplicaSetForAllNamespaces 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.apps.v1.ReplicaSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/statefulsets: get: consumes: - '*/*' description: list or watch objects of kind StatefulSet operationId: listAppsV1StatefulSetForAllNamespaces 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.apps.v1.StatefulSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/controllerrevisions: get: consumes: - '*/*' description: watch individual changes to a list of ControllerRevision operationId: watchAppsV1ControllerRevisionListForAllNamespaces 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/daemonsets: get: consumes: - '*/*' description: watch individual changes to a list of DaemonSet operationId: watchAppsV1DaemonSetListForAllNamespaces 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchAppsV1DeploymentListForAllNamespaces 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/controllerrevisions: get: consumes: - '*/*' description: watch individual changes to a list of ControllerRevision operationId: watchAppsV1NamespacedControllerRevisionList 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ControllerRevision operationId: watchAppsV1NamespacedControllerRevision 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: - apps_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ControllerRevision 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/daemonsets: get: consumes: - '*/*' description: watch individual changes to a list of DaemonSet operationId: watchAppsV1NamespacedDaemonSetList 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind DaemonSet operationId: watchAppsV1NamespacedDaemonSet 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: - apps_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchAppsV1NamespacedDeploymentList 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/deployments/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Deployment operationId: watchAppsV1NamespacedDeployment 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: - apps_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/replicasets: get: consumes: - '*/*' description: watch individual changes to a list of ReplicaSet operationId: watchAppsV1NamespacedReplicaSetList 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/replicasets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ReplicaSet operationId: watchAppsV1NamespacedReplicaSet 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: - apps_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/statefulsets: get: consumes: - '*/*' description: watch individual changes to a list of StatefulSet operationId: watchAppsV1NamespacedStatefulSetList 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind StatefulSet operationId: watchAppsV1NamespacedStatefulSet 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: - apps_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/replicasets: get: consumes: - '*/*' description: watch individual changes to a list of ReplicaSet operationId: watchAppsV1ReplicaSetListForAllNamespaces 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1/watch/statefulsets: get: consumes: - '*/*' description: watch individual changes to a list of StatefulSet operationId: watchAppsV1StatefulSetListForAllNamespaces 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: - apps_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAppsV1beta1APIResources 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: - apps_v1beta1 /apis/apps/v1beta1/controllerrevisions: get: consumes: - '*/*' description: list or watch objects of kind ControllerRevision operationId: listAppsV1beta1ControllerRevisionForAllNamespaces 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.apps.v1beta1.ControllerRevisionList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/deployments: get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listAppsV1beta1DeploymentForAllNamespaces 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.apps.v1beta1.DeploymentList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/namespaces/{namespace}/controllerrevisions: delete: consumes: - '*/*' description: delete collection of ControllerRevision operationId: deleteAppsV1beta1CollectionNamespacedControllerRevision parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind ControllerRevision operationId: listAppsV1beta1NamespacedControllerRevision parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta1.ControllerRevisionList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ControllerRevision operationId: createAppsV1beta1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}: delete: consumes: - '*/*' description: delete a ControllerRevision operationId: deleteAppsV1beta1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 get: consumes: - '*/*' description: read the specified ControllerRevision operationId: readAppsV1beta1NamespacedControllerRevision parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 parameters: - description: name of the ControllerRevision 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ControllerRevision operationId: patchAppsV1beta1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 put: consumes: - '*/*' description: replace the specified ControllerRevision operationId: replaceAppsV1beta1NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/deployments: delete: consumes: - '*/*' description: delete collection of Deployment operationId: deleteAppsV1beta1CollectionNamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listAppsV1beta1NamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta1.DeploymentList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Deployment operationId: createAppsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}: delete: consumes: - '*/*' description: delete a Deployment operationId: deleteAppsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 get: consumes: - '*/*' description: read the specified Deployment operationId: readAppsV1beta1NamespacedDeployment parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Deployment operationId: patchAppsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 put: consumes: - '*/*' description: replace the specified Deployment operationId: replaceAppsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/rollback: parameters: - description: name of the DeploymentRollback 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create rollback of a Deployment operationId: createAppsV1beta1NamespacedDeploymentRollback parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: DeploymentRollback version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale: get: consumes: - '*/*' description: read scale of the specified Deployment operationId: readAppsV1beta1NamespacedDeploymentScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified Deployment operationId: patchAppsV1beta1NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta1 put: consumes: - '*/*' description: replace scale of the specified Deployment operationId: replaceAppsV1beta1NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status: get: consumes: - '*/*' description: read status of the specified Deployment operationId: readAppsV1beta1NamespacedDeploymentStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Deployment operationId: patchAppsV1beta1NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 put: consumes: - '*/*' description: replace status of the specified Deployment operationId: replaceAppsV1beta1NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/statefulsets: delete: consumes: - '*/*' description: delete collection of StatefulSet operationId: deleteAppsV1beta1CollectionNamespacedStatefulSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind StatefulSet operationId: listAppsV1beta1NamespacedStatefulSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta1.StatefulSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a StatefulSet operationId: createAppsV1beta1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}: delete: consumes: - '*/*' description: delete a StatefulSet operationId: deleteAppsV1beta1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 get: consumes: - '*/*' description: read the specified StatefulSet operationId: readAppsV1beta1NamespacedStatefulSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 parameters: - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified StatefulSet operationId: patchAppsV1beta1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 put: consumes: - '*/*' description: replace the specified StatefulSet operationId: replaceAppsV1beta1NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale: get: consumes: - '*/*' description: read scale of the specified StatefulSet operationId: readAppsV1beta1NamespacedStatefulSetScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified StatefulSet operationId: patchAppsV1beta1NamespacedStatefulSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta1 put: consumes: - '*/*' description: replace scale of the specified StatefulSet operationId: replaceAppsV1beta1NamespacedStatefulSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta1 /apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status: get: consumes: - '*/*' description: read status of the specified StatefulSet operationId: readAppsV1beta1NamespacedStatefulSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 parameters: - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified StatefulSet operationId: patchAppsV1beta1NamespacedStatefulSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 put: consumes: - '*/*' description: replace status of the specified StatefulSet operationId: replaceAppsV1beta1NamespacedStatefulSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 /apis/apps/v1beta1/statefulsets: get: consumes: - '*/*' description: list or watch objects of kind StatefulSet operationId: listAppsV1beta1StatefulSetForAllNamespaces 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.apps.v1beta1.StatefulSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/controllerrevisions: get: consumes: - '*/*' description: watch individual changes to a list of ControllerRevision operationId: watchAppsV1beta1ControllerRevisionListForAllNamespaces 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: - apps_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchAppsV1beta1DeploymentListForAllNamespaces 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: - apps_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions: get: consumes: - '*/*' description: watch individual changes to a list of ControllerRevision operationId: watchAppsV1beta1NamespacedControllerRevisionList 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: - apps_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ControllerRevision operationId: watchAppsV1beta1NamespacedControllerRevision 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: - apps_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ControllerRevision 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/namespaces/{namespace}/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchAppsV1beta1NamespacedDeploymentList 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: - apps_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Deployment operationId: watchAppsV1beta1NamespacedDeployment 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: - apps_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/namespaces/{namespace}/statefulsets: get: consumes: - '*/*' description: watch individual changes to a list of StatefulSet operationId: watchAppsV1beta1NamespacedStatefulSetList 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: - apps_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind StatefulSet operationId: watchAppsV1beta1NamespacedStatefulSet 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: - apps_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta1/watch/statefulsets: get: consumes: - '*/*' description: watch individual changes to a list of StatefulSet operationId: watchAppsV1beta1StatefulSetListForAllNamespaces 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: - apps_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAppsV1beta2APIResources 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: - apps_v1beta2 /apis/apps/v1beta2/controllerrevisions: get: consumes: - '*/*' description: list or watch objects of kind ControllerRevision operationId: listAppsV1beta2ControllerRevisionForAllNamespaces 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.apps.v1beta2.ControllerRevisionList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/daemonsets: get: consumes: - '*/*' description: list or watch objects of kind DaemonSet operationId: listAppsV1beta2DaemonSetForAllNamespaces 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.apps.v1beta2.DaemonSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/deployments: get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listAppsV1beta2DeploymentForAllNamespaces 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.apps.v1beta2.DeploymentList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/namespaces/{namespace}/controllerrevisions: delete: consumes: - '*/*' description: delete collection of ControllerRevision operationId: deleteAppsV1beta2CollectionNamespacedControllerRevision parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 get: consumes: - '*/*' description: list or watch objects of kind ControllerRevision operationId: listAppsV1beta2NamespacedControllerRevision parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta2.ControllerRevisionList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ControllerRevision operationId: createAppsV1beta2NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}: delete: consumes: - '*/*' description: delete a ControllerRevision operationId: deleteAppsV1beta2NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 get: consumes: - '*/*' description: read the specified ControllerRevision operationId: readAppsV1beta2NamespacedControllerRevision parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 parameters: - description: name of the ControllerRevision 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ControllerRevision operationId: patchAppsV1beta2NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 put: consumes: - '*/*' description: replace the specified ControllerRevision operationId: replaceAppsV1beta2NamespacedControllerRevision parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/daemonsets: delete: consumes: - '*/*' description: delete collection of DaemonSet operationId: deleteAppsV1beta2CollectionNamespacedDaemonSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 get: consumes: - '*/*' description: list or watch objects of kind DaemonSet operationId: listAppsV1beta2NamespacedDaemonSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta2.DaemonSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a DaemonSet operationId: createAppsV1beta2NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}: delete: consumes: - '*/*' description: delete a DaemonSet operationId: deleteAppsV1beta2NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 get: consumes: - '*/*' description: read the specified DaemonSet operationId: readAppsV1beta2NamespacedDaemonSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 parameters: - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified DaemonSet operationId: patchAppsV1beta2NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 put: consumes: - '*/*' description: replace the specified DaemonSet operationId: replaceAppsV1beta2NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status: get: consumes: - '*/*' description: read status of the specified DaemonSet operationId: readAppsV1beta2NamespacedDaemonSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 parameters: - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified DaemonSet operationId: patchAppsV1beta2NamespacedDaemonSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 put: consumes: - '*/*' description: replace status of the specified DaemonSet operationId: replaceAppsV1beta2NamespacedDaemonSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/deployments: delete: consumes: - '*/*' description: delete collection of Deployment operationId: deleteAppsV1beta2CollectionNamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listAppsV1beta2NamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta2.DeploymentList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Deployment operationId: createAppsV1beta2NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}: delete: consumes: - '*/*' description: delete a Deployment operationId: deleteAppsV1beta2NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 get: consumes: - '*/*' description: read the specified Deployment operationId: readAppsV1beta2NamespacedDeployment parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Deployment operationId: patchAppsV1beta2NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 put: consumes: - '*/*' description: replace the specified Deployment operationId: replaceAppsV1beta2NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale: get: consumes: - '*/*' description: read scale of the specified Deployment operationId: readAppsV1beta2NamespacedDeploymentScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified Deployment operationId: patchAppsV1beta2NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 put: consumes: - '*/*' description: replace scale of the specified Deployment operationId: replaceAppsV1beta2NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status: get: consumes: - '*/*' description: read status of the specified Deployment operationId: readAppsV1beta2NamespacedDeploymentStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Deployment operationId: patchAppsV1beta2NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 put: consumes: - '*/*' description: replace status of the specified Deployment operationId: replaceAppsV1beta2NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/replicasets: delete: consumes: - '*/*' description: delete collection of ReplicaSet operationId: deleteAppsV1beta2CollectionNamespacedReplicaSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 get: consumes: - '*/*' description: list or watch objects of kind ReplicaSet operationId: listAppsV1beta2NamespacedReplicaSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta2.ReplicaSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ReplicaSet operationId: createAppsV1beta2NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}: delete: consumes: - '*/*' description: delete a ReplicaSet operationId: deleteAppsV1beta2NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 get: consumes: - '*/*' description: read the specified ReplicaSet operationId: readAppsV1beta2NamespacedReplicaSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 parameters: - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ReplicaSet operationId: patchAppsV1beta2NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 put: consumes: - '*/*' description: replace the specified ReplicaSet operationId: replaceAppsV1beta2NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale: get: consumes: - '*/*' description: read scale of the specified ReplicaSet operationId: readAppsV1beta2NamespacedReplicaSetScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified ReplicaSet operationId: patchAppsV1beta2NamespacedReplicaSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 put: consumes: - '*/*' description: replace scale of the specified ReplicaSet operationId: replaceAppsV1beta2NamespacedReplicaSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status: get: consumes: - '*/*' description: read status of the specified ReplicaSet operationId: readAppsV1beta2NamespacedReplicaSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 parameters: - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified ReplicaSet operationId: patchAppsV1beta2NamespacedReplicaSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 put: consumes: - '*/*' description: replace status of the specified ReplicaSet operationId: replaceAppsV1beta2NamespacedReplicaSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/statefulsets: delete: consumes: - '*/*' description: delete collection of StatefulSet operationId: deleteAppsV1beta2CollectionNamespacedStatefulSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 get: consumes: - '*/*' description: list or watch objects of kind StatefulSet operationId: listAppsV1beta2NamespacedStatefulSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.apps.v1beta2.StatefulSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a StatefulSet operationId: createAppsV1beta2NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: post x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}: delete: consumes: - '*/*' description: delete a StatefulSet operationId: deleteAppsV1beta2NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 get: consumes: - '*/*' description: read the specified StatefulSet operationId: readAppsV1beta2NamespacedStatefulSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 parameters: - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified StatefulSet operationId: patchAppsV1beta2NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 put: consumes: - '*/*' description: replace the specified StatefulSet operationId: replaceAppsV1beta2NamespacedStatefulSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale: get: consumes: - '*/*' description: read scale of the specified StatefulSet operationId: readAppsV1beta2NamespacedStatefulSetScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified StatefulSet operationId: patchAppsV1beta2NamespacedStatefulSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 put: consumes: - '*/*' description: replace scale of the specified StatefulSet operationId: replaceAppsV1beta2NamespacedStatefulSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Scale' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: Scale version: v1beta2 /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status: get: consumes: - '*/*' description: read status of the specified StatefulSet operationId: readAppsV1beta2NamespacedStatefulSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: get x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 parameters: - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified StatefulSet operationId: patchAppsV1beta2NamespacedStatefulSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 put: consumes: - '*/*' description: replace status of the specified StatefulSet operationId: replaceAppsV1beta2NamespacedStatefulSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: put x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 /apis/apps/v1beta2/replicasets: get: consumes: - '*/*' description: list or watch objects of kind ReplicaSet operationId: listAppsV1beta2ReplicaSetForAllNamespaces 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.apps.v1beta2.ReplicaSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/statefulsets: get: consumes: - '*/*' description: list or watch objects of kind StatefulSet operationId: listAppsV1beta2StatefulSetForAllNamespaces 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.apps.v1beta2.StatefulSetList' '401': description: Unauthorized schemes: - https tags: - apps_v1beta2 x-kubernetes-action: list x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/controllerrevisions: get: consumes: - '*/*' description: watch individual changes to a list of ControllerRevision operationId: watchAppsV1beta2ControllerRevisionListForAllNamespaces 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/daemonsets: get: consumes: - '*/*' description: watch individual changes to a list of DaemonSet operationId: watchAppsV1beta2DaemonSetListForAllNamespaces 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchAppsV1beta2DeploymentListForAllNamespaces 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions: get: consumes: - '*/*' description: watch individual changes to a list of ControllerRevision operationId: watchAppsV1beta2NamespacedControllerRevisionList 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ControllerRevision operationId: watchAppsV1beta2NamespacedControllerRevision 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: - apps_v1beta2 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: ControllerRevision version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ControllerRevision 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/daemonsets: get: consumes: - '*/*' description: watch individual changes to a list of DaemonSet operationId: watchAppsV1beta2NamespacedDaemonSetList 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind DaemonSet operationId: watchAppsV1beta2NamespacedDaemonSet 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: - apps_v1beta2 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: DaemonSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchAppsV1beta2NamespacedDeploymentList 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Deployment operationId: watchAppsV1beta2NamespacedDeployment 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: - apps_v1beta2 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: Deployment version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/replicasets: get: consumes: - '*/*' description: watch individual changes to a list of ReplicaSet operationId: watchAppsV1beta2NamespacedReplicaSetList 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ReplicaSet operationId: watchAppsV1beta2NamespacedReplicaSet 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: - apps_v1beta2 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/statefulsets: get: consumes: - '*/*' description: watch individual changes to a list of StatefulSet operationId: watchAppsV1beta2NamespacedStatefulSetList 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind StatefulSet operationId: watchAppsV1beta2NamespacedStatefulSet 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: - apps_v1beta2 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the StatefulSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/replicasets: get: consumes: - '*/*' description: watch individual changes to a list of ReplicaSet operationId: watchAppsV1beta2ReplicaSetListForAllNamespaces 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: ReplicaSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/apps/v1beta2/watch/statefulsets: get: consumes: - '*/*' description: watch individual changes to a list of StatefulSet operationId: watchAppsV1beta2StatefulSetListForAllNamespaces 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: - apps_v1beta2 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: apps kind: StatefulSet version: v1beta2 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/authentication.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getAuthenticationAPIGroup 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: - authentication /apis/authentication.k8s.io/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAuthenticationV1APIResources 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: - authentication_v1 /apis/authentication.k8s.io/v1/tokenreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a TokenReview operationId: createAuthenticationV1TokenReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReview' '401': description: Unauthorized schemes: - https tags: - authentication_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authentication.k8s.io kind: TokenReview version: v1 /apis/authentication.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAuthenticationV1beta1APIResources 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: - authentication_v1beta1 /apis/authentication.k8s.io/v1beta1/tokenreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a TokenReview operationId: createAuthenticationV1beta1TokenReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReview' '401': description: Unauthorized schemes: - https tags: - authentication_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authentication.k8s.io kind: TokenReview version: v1beta1 /apis/authorization.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getAuthorizationAPIGroup 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: - authorization /apis/authorization.k8s.io/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAuthorizationV1APIResources 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: - authorization_v1 /apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews: 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a LocalSubjectAccessReview operationId: createAuthorizationV1NamespacedLocalSubjectAccessReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: LocalSubjectAccessReview version: v1 /apis/authorization.k8s.io/v1/selfsubjectaccessreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a SelfSubjectAccessReview operationId: createAuthorizationV1SelfSubjectAccessReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: SelfSubjectAccessReview version: v1 /apis/authorization.k8s.io/v1/selfsubjectrulesreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a SelfSubjectRulesReview operationId: createAuthorizationV1SelfSubjectRulesReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: SelfSubjectRulesReview version: v1 /apis/authorization.k8s.io/v1/subjectaccessreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a SubjectAccessReview operationId: createAuthorizationV1SubjectAccessReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: SubjectAccessReview version: v1 /apis/authorization.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAuthorizationV1beta1APIResources 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: - authorization_v1beta1 /apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews: 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a LocalSubjectAccessReview operationId: createAuthorizationV1beta1NamespacedLocalSubjectAccessReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: LocalSubjectAccessReview version: v1beta1 /apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a SelfSubjectAccessReview operationId: createAuthorizationV1beta1SelfSubjectAccessReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: SelfSubjectAccessReview version: v1beta1 /apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a SelfSubjectRulesReview operationId: createAuthorizationV1beta1SelfSubjectRulesReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: SelfSubjectRulesReview version: v1beta1 /apis/authorization.k8s.io/v1beta1/subjectaccessreviews: parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a SubjectAccessReview operationId: createAuthorizationV1beta1SubjectAccessReview parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview' '401': description: Unauthorized schemes: - https tags: - authorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: authorization.k8s.io kind: SubjectAccessReview version: v1beta1 /apis/autoscaling/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getAutoscalingAPIGroup 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: - autoscaling /apis/autoscaling/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAutoscalingV1APIResources 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: - autoscaling_v1 /apis/autoscaling/v1/horizontalpodautoscalers: get: consumes: - '*/*' description: list or watch objects of kind HorizontalPodAutoscaler operationId: listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces 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.autoscaling.v1.HorizontalPodAutoscalerList' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers: delete: consumes: - '*/*' description: delete collection of HorizontalPodAutoscaler operationId: deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 get: consumes: - '*/*' description: list or watch objects of kind HorizontalPodAutoscaler operationId: listAutoscalingV1NamespacedHorizontalPodAutoscaler parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a HorizontalPodAutoscaler operationId: createAutoscalingV1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 /apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}: delete: consumes: - '*/*' description: delete a HorizontalPodAutoscaler operationId: deleteAutoscalingV1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 get: consumes: - '*/*' description: read the specified HorizontalPodAutoscaler operationId: readAutoscalingV1NamespacedHorizontalPodAutoscaler parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 parameters: - description: name of the HorizontalPodAutoscaler 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified HorizontalPodAutoscaler operationId: patchAutoscalingV1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 put: consumes: - '*/*' description: replace the specified HorizontalPodAutoscaler operationId: replaceAutoscalingV1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 /apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status: get: consumes: - '*/*' description: read status of the specified HorizontalPodAutoscaler operationId: readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 parameters: - description: name of the HorizontalPodAutoscaler 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified HorizontalPodAutoscaler operationId: patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 put: consumes: - '*/*' description: replace status of the specified HorizontalPodAutoscaler operationId: replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 /apis/autoscaling/v1/watch/horizontalpodautoscalers: get: consumes: - '*/*' description: watch individual changes to a list of HorizontalPodAutoscaler operationId: watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces 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: - autoscaling_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers: get: consumes: - '*/*' description: watch individual changes to a list of HorizontalPodAutoscaler operationId: watchAutoscalingV1NamespacedHorizontalPodAutoscalerList 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: - autoscaling_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}: get: consumes: - '*/*' description: watch changes to an object of kind HorizontalPodAutoscaler operationId: watchAutoscalingV1NamespacedHorizontalPodAutoscaler 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: - autoscaling_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the HorizontalPodAutoscaler 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/autoscaling/v2beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getAutoscalingV2beta1APIResources 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: - autoscaling_v2beta1 /apis/autoscaling/v2beta1/horizontalpodautoscalers: get: consumes: - '*/*' description: list or watch objects of kind HorizontalPodAutoscaler operationId: listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces 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.autoscaling.v2beta1.HorizontalPodAutoscalerList' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers: delete: consumes: - '*/*' description: delete collection of HorizontalPodAutoscaler operationId: deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 get: consumes: - '*/*' description: list or watch objects of kind HorizontalPodAutoscaler operationId: listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a HorizontalPodAutoscaler operationId: createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 /apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}: delete: consumes: - '*/*' description: delete a HorizontalPodAutoscaler operationId: deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 get: consumes: - '*/*' description: read the specified HorizontalPodAutoscaler operationId: readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 parameters: - description: name of the HorizontalPodAutoscaler 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified HorizontalPodAutoscaler operationId: patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 put: consumes: - '*/*' description: replace the specified HorizontalPodAutoscaler operationId: replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 /apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status: get: consumes: - '*/*' description: read status of the specified HorizontalPodAutoscaler operationId: readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 parameters: - description: name of the HorizontalPodAutoscaler 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified HorizontalPodAutoscaler operationId: patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 put: consumes: - '*/*' description: replace status of the specified HorizontalPodAutoscaler operationId: replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' '401': description: Unauthorized schemes: - https tags: - autoscaling_v2beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 /apis/autoscaling/v2beta1/watch/horizontalpodautoscalers: get: consumes: - '*/*' description: watch individual changes to a list of HorizontalPodAutoscaler operationId: watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces 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: - autoscaling_v2beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers: get: consumes: - '*/*' description: watch individual changes to a list of HorizontalPodAutoscaler operationId: watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList 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: - autoscaling_v2beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}: get: consumes: - '*/*' description: watch changes to an object of kind HorizontalPodAutoscaler operationId: watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler 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: - autoscaling_v2beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the HorizontalPodAutoscaler 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getBatchAPIGroup 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: - batch /apis/batch/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getBatchV1APIResources 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: - batch_v1 /apis/batch/v1/jobs: get: consumes: - '*/*' description: list or watch objects of kind Job operationId: listBatchV1JobForAllNamespaces 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.batch.v1.JobList' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: batch kind: Job version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v1/namespaces/{namespace}/jobs: delete: consumes: - '*/*' description: delete collection of Job operationId: deleteBatchV1CollectionNamespacedJob parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: batch kind: Job version: v1 get: consumes: - '*/*' description: list or watch objects of kind Job operationId: listBatchV1NamespacedJob parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.batch.v1.JobList' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: batch kind: Job version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Job operationId: createBatchV1NamespacedJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: batch kind: Job version: v1 /apis/batch/v1/namespaces/{namespace}/jobs/{name}: delete: consumes: - '*/*' description: delete a Job operationId: deleteBatchV1NamespacedJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: batch kind: Job version: v1 get: consumes: - '*/*' description: read the specified Job operationId: readBatchV1NamespacedJob parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: batch kind: Job version: v1 parameters: - description: name of the Job 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Job operationId: patchBatchV1NamespacedJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: batch kind: Job version: v1 put: consumes: - '*/*' description: replace the specified Job operationId: replaceBatchV1NamespacedJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: batch kind: Job version: v1 /apis/batch/v1/namespaces/{namespace}/jobs/{name}/status: get: consumes: - '*/*' description: read status of the specified Job operationId: readBatchV1NamespacedJobStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: batch kind: Job version: v1 parameters: - description: name of the Job 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Job operationId: patchBatchV1NamespacedJobStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: batch kind: Job version: v1 put: consumes: - '*/*' description: replace status of the specified Job operationId: replaceBatchV1NamespacedJobStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v1.Job' '401': description: Unauthorized schemes: - https tags: - batch_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: batch kind: Job version: v1 /apis/batch/v1/watch/jobs: get: consumes: - '*/*' description: watch individual changes to a list of Job operationId: watchBatchV1JobListForAllNamespaces 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: - batch_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: batch kind: Job version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v1/watch/namespaces/{namespace}/jobs: get: consumes: - '*/*' description: watch individual changes to a list of Job operationId: watchBatchV1NamespacedJobList 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: - batch_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: batch kind: Job version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v1/watch/namespaces/{namespace}/jobs/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Job operationId: watchBatchV1NamespacedJob 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: - batch_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: batch kind: Job version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Job 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getBatchV1beta1APIResources 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: - batch_v1beta1 /apis/batch/v1beta1/cronjobs: get: consumes: - '*/*' description: list or watch objects of kind CronJob operationId: listBatchV1beta1CronJobForAllNamespaces 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.batch.v1beta1.CronJobList' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v1beta1/namespaces/{namespace}/cronjobs: delete: consumes: - '*/*' description: delete collection of CronJob operationId: deleteBatchV1beta1CollectionNamespacedCronJob parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind CronJob operationId: listBatchV1beta1NamespacedCronJob parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.batch.v1beta1.CronJobList' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a CronJob operationId: createBatchV1beta1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}: delete: consumes: - '*/*' description: delete a CronJob operationId: deleteBatchV1beta1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 get: consumes: - '*/*' description: read the specified CronJob operationId: readBatchV1beta1NamespacedCronJob parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 parameters: - description: name of the CronJob 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified CronJob operationId: patchBatchV1beta1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 put: consumes: - '*/*' description: replace the specified CronJob operationId: replaceBatchV1beta1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 /apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status: get: consumes: - '*/*' description: read status of the specified CronJob operationId: readBatchV1beta1NamespacedCronJobStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 parameters: - description: name of the CronJob 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified CronJob operationId: patchBatchV1beta1NamespacedCronJobStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 put: consumes: - '*/*' description: replace status of the specified CronJob operationId: replaceBatchV1beta1NamespacedCronJobStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 /apis/batch/v1beta1/watch/cronjobs: get: consumes: - '*/*' description: watch individual changes to a list of CronJob operationId: watchBatchV1beta1CronJobListForAllNamespaces 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: - batch_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v1beta1/watch/namespaces/{namespace}/cronjobs: get: consumes: - '*/*' description: watch individual changes to a list of CronJob operationId: watchBatchV1beta1NamespacedCronJobList 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: - batch_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}: get: consumes: - '*/*' description: watch changes to an object of kind CronJob operationId: watchBatchV1beta1NamespacedCronJob 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: - batch_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: batch kind: CronJob version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the CronJob 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v2alpha1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getBatchV2alpha1APIResources 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: - batch_v2alpha1 /apis/batch/v2alpha1/cronjobs: get: consumes: - '*/*' description: list or watch objects of kind CronJob operationId: listBatchV2alpha1CronJobForAllNamespaces 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.batch.v2alpha1.CronJobList' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v2alpha1/namespaces/{namespace}/cronjobs: delete: consumes: - '*/*' description: delete collection of CronJob operationId: deleteBatchV2alpha1CollectionNamespacedCronJob parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 get: consumes: - '*/*' description: list or watch objects of kind CronJob operationId: listBatchV2alpha1NamespacedCronJob parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.batch.v2alpha1.CronJobList' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a CronJob operationId: createBatchV2alpha1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 /apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}: delete: consumes: - '*/*' description: delete a CronJob operationId: deleteBatchV2alpha1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 get: consumes: - '*/*' description: read the specified CronJob operationId: readBatchV2alpha1NamespacedCronJob parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 parameters: - description: name of the CronJob 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified CronJob operationId: patchBatchV2alpha1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 put: consumes: - '*/*' description: replace the specified CronJob operationId: replaceBatchV2alpha1NamespacedCronJob parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 /apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}/status: get: consumes: - '*/*' description: read status of the specified CronJob operationId: readBatchV2alpha1NamespacedCronJobStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 parameters: - description: name of the CronJob 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified CronJob operationId: patchBatchV2alpha1NamespacedCronJobStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 put: consumes: - '*/*' description: replace status of the specified CronJob operationId: replaceBatchV2alpha1NamespacedCronJobStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' '401': description: Unauthorized schemes: - https tags: - batch_v2alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 /apis/batch/v2alpha1/watch/cronjobs: get: consumes: - '*/*' description: watch individual changes to a list of CronJob operationId: watchBatchV2alpha1CronJobListForAllNamespaces 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: - batch_v2alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs: get: consumes: - '*/*' description: watch individual changes to a list of CronJob operationId: watchBatchV2alpha1NamespacedCronJobList 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: - batch_v2alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs/{name}: get: consumes: - '*/*' description: watch changes to an object of kind CronJob operationId: watchBatchV2alpha1NamespacedCronJob 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: - batch_v2alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: batch kind: CronJob version: v2alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the CronJob 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/certificates.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getCertificatesAPIGroup 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: - certificates /apis/certificates.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getCertificatesV1beta1APIResources 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: - certificates_v1beta1 /apis/certificates.k8s.io/v1beta1/certificatesigningrequests: delete: consumes: - '*/*' description: delete collection of CertificateSigningRequest operationId: deleteCertificatesV1beta1CollectionCertificateSigningRequest parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind CertificateSigningRequest operationId: listCertificatesV1beta1CertificateSigningRequest parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a CertificateSigningRequest operationId: createCertificatesV1beta1CertificateSigningRequest parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}: delete: consumes: - '*/*' description: delete a CertificateSigningRequest operationId: deleteCertificatesV1beta1CertificateSigningRequest parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 get: consumes: - '*/*' description: read the specified CertificateSigningRequest operationId: readCertificatesV1beta1CertificateSigningRequest parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 parameters: - description: name of the CertificateSigningRequest in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified CertificateSigningRequest operationId: patchCertificatesV1beta1CertificateSigningRequest parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 put: consumes: - '*/*' description: replace the specified CertificateSigningRequest operationId: replaceCertificatesV1beta1CertificateSigningRequest parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval: parameters: - description: name of the CertificateSigningRequest in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true put: consumes: - '*/*' description: replace approval of the specified CertificateSigningRequest operationId: replaceCertificatesV1beta1CertificateSigningRequestApproval parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status: get: consumes: - '*/*' description: read status of the specified CertificateSigningRequest operationId: readCertificatesV1beta1CertificateSigningRequestStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 parameters: - description: name of the CertificateSigningRequest in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified CertificateSigningRequest operationId: patchCertificatesV1beta1CertificateSigningRequestStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 put: consumes: - '*/*' description: replace status of the specified CertificateSigningRequest operationId: replaceCertificatesV1beta1CertificateSigningRequestStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' '401': description: Unauthorized schemes: - https tags: - certificates_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 /apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests: get: consumes: - '*/*' description: watch individual changes to a list of CertificateSigningRequest operationId: watchCertificatesV1beta1CertificateSigningRequestList 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: - certificates_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}: get: consumes: - '*/*' description: watch changes to an object of kind CertificateSigningRequest operationId: watchCertificatesV1beta1CertificateSigningRequest 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: - certificates_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the CertificateSigningRequest in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/events.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getEventsAPIGroup 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: - events /apis/events.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getEventsV1beta1APIResources 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: - events_v1beta1 /apis/events.k8s.io/v1beta1/events: get: consumes: - '*/*' description: list or watch objects of kind Event operationId: listEventsV1beta1EventForAllNamespaces 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.events.v1beta1.EventList' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/events.k8s.io/v1beta1/namespaces/{namespace}/events: delete: consumes: - '*/*' description: delete collection of Event operationId: deleteEventsV1beta1CollectionNamespacedEvent parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind Event operationId: listEventsV1beta1NamespacedEvent parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.events.v1beta1.EventList' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create an Event operationId: createEventsV1beta1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}: delete: consumes: - '*/*' description: delete an Event operationId: deleteEventsV1beta1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 get: consumes: - '*/*' description: read the specified Event operationId: readEventsV1beta1NamespacedEvent parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 parameters: - description: name of the Event 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Event operationId: patchEventsV1beta1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 put: consumes: - '*/*' description: replace the specified Event operationId: replaceEventsV1beta1NamespacedEvent parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' '401': description: Unauthorized schemes: - https tags: - events_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 /apis/events.k8s.io/v1beta1/watch/events: get: consumes: - '*/*' description: watch individual changes to a list of Event operationId: watchEventsV1beta1EventListForAllNamespaces 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: - events_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events: get: consumes: - '*/*' description: watch individual changes to a list of Event operationId: watchEventsV1beta1NamespacedEventList 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: - events_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Event operationId: watchEventsV1beta1NamespacedEvent 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: - events_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: events.k8s.io kind: Event version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Event 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getExtensionsAPIGroup 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: - extensions /apis/extensions/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getExtensionsV1beta1APIResources 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: - extensions_v1beta1 /apis/extensions/v1beta1/thirdpartyresources: delete: consumes: - '*/*' description: delete collection of ThirdPartyResource operationId: deleteExtensionsV1beta1CollectionThirdPartyResource parameters: - 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string uniqueItems: true - description: Timeout for the list/watch call. 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: extensions kind: ThirdPartyResource version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind ThirdPartyResource operationId: listExtensionsV1beta1ThirdPartyResource parameters: - 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string uniqueItems: true - description: Timeout for the list/watch call. 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/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResourceList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: ThirdPartyResource version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ThirdPartyResource operationId: createExtensionsV1beta1ThirdPartyResource parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: ThirdPartyResource version: v1beta1 /apis/extensions/v1beta1/thirdpartyresources/{name}: delete: consumes: - '*/*' description: delete a ThirdPartyResource operationId: deleteExtensionsV1beta1ThirdPartyResource parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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. in: query name: propagationPolicy type: string uniqueItems: true 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: - extensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: extensions kind: ThirdPartyResource version: v1beta1 get: consumes: - '*/*' description: read the specified ThirdPartyResource operationId: readExtensionsV1beta1ThirdPartyResource parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: ThirdPartyResource version: v1beta1 parameters: - description: name of the ThirdPartyResource in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ThirdPartyResource operationId: patchExtensionsV1beta1ThirdPartyResource parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: ThirdPartyResource version: v1beta1 put: consumes: - '*/*' description: replace the specified ThirdPartyResource operationId: replaceExtensionsV1beta1ThirdPartyResource parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: ThirdPartyResource version: v1beta1 /apis/extensions/v1beta1/daemonsets: get: consumes: - '*/*' description: list or watch objects of kind DaemonSet operationId: listExtensionsV1beta1DaemonSetForAllNamespaces 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.extensions.v1beta1.DaemonSetList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/deployments: get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listExtensionsV1beta1DeploymentForAllNamespaces 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.extensions.v1beta1.DeploymentList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/ingresses: get: consumes: - '*/*' description: list or watch objects of kind Ingress operationId: listExtensionsV1beta1IngressForAllNamespaces 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.extensions.v1beta1.IngressList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/namespaces/{namespace}/daemonsets: delete: consumes: - '*/*' description: delete collection of DaemonSet operationId: deleteExtensionsV1beta1CollectionNamespacedDaemonSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind DaemonSet operationId: listExtensionsV1beta1NamespacedDaemonSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.extensions.v1beta1.DaemonSetList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a DaemonSet operationId: createExtensionsV1beta1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}: delete: consumes: - '*/*' description: delete a DaemonSet operationId: deleteExtensionsV1beta1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 get: consumes: - '*/*' description: read the specified DaemonSet operationId: readExtensionsV1beta1NamespacedDaemonSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 parameters: - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified DaemonSet operationId: patchExtensionsV1beta1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 put: consumes: - '*/*' description: replace the specified DaemonSet operationId: replaceExtensionsV1beta1NamespacedDaemonSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status: get: consumes: - '*/*' description: read status of the specified DaemonSet operationId: readExtensionsV1beta1NamespacedDaemonSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 parameters: - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified DaemonSet operationId: patchExtensionsV1beta1NamespacedDaemonSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 put: consumes: - '*/*' description: replace status of the specified DaemonSet operationId: replaceExtensionsV1beta1NamespacedDaemonSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/deployments: delete: consumes: - '*/*' description: delete collection of Deployment operationId: deleteExtensionsV1beta1CollectionNamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind Deployment operationId: listExtensionsV1beta1NamespacedDeployment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.extensions.v1beta1.DeploymentList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Deployment operationId: createExtensionsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}: delete: consumes: - '*/*' description: delete a Deployment operationId: deleteExtensionsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 get: consumes: - '*/*' description: read the specified Deployment operationId: readExtensionsV1beta1NamespacedDeployment parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Deployment operationId: patchExtensionsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 put: consumes: - '*/*' description: replace the specified Deployment operationId: replaceExtensionsV1beta1NamespacedDeployment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback: parameters: - description: name of the DeploymentRollback 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create rollback of a Deployment operationId: createExtensionsV1beta1NamespacedDeploymentRollback parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: DeploymentRollback version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale: get: consumes: - '*/*' description: read scale of the specified Deployment operationId: readExtensionsV1beta1NamespacedDeploymentScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified Deployment operationId: patchExtensionsV1beta1NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 put: consumes: - '*/*' description: replace scale of the specified Deployment operationId: replaceExtensionsV1beta1NamespacedDeploymentScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status: get: consumes: - '*/*' description: read status of the specified Deployment operationId: readExtensionsV1beta1NamespacedDeploymentStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 parameters: - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Deployment operationId: patchExtensionsV1beta1NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 put: consumes: - '*/*' description: replace status of the specified Deployment operationId: replaceExtensionsV1beta1NamespacedDeploymentStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/ingresses: delete: consumes: - '*/*' description: delete collection of Ingress operationId: deleteExtensionsV1beta1CollectionNamespacedIngress parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind Ingress operationId: listExtensionsV1beta1NamespacedIngress parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.extensions.v1beta1.IngressList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create an Ingress operationId: createExtensionsV1beta1NamespacedIngress parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}: delete: consumes: - '*/*' description: delete an Ingress operationId: deleteExtensionsV1beta1NamespacedIngress parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 get: consumes: - '*/*' description: read the specified Ingress operationId: readExtensionsV1beta1NamespacedIngress parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 parameters: - description: name of the Ingress 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Ingress operationId: patchExtensionsV1beta1NamespacedIngress parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 put: consumes: - '*/*' description: replace the specified Ingress operationId: replaceExtensionsV1beta1NamespacedIngress parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status: get: consumes: - '*/*' description: read status of the specified Ingress operationId: readExtensionsV1beta1NamespacedIngressStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 parameters: - description: name of the Ingress 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified Ingress operationId: patchExtensionsV1beta1NamespacedIngressStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 put: consumes: - '*/*' description: replace status of the specified Ingress operationId: replaceExtensionsV1beta1NamespacedIngressStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies: delete: consumes: - '*/*' description: delete collection of NetworkPolicy operationId: deleteExtensionsV1beta1CollectionNamespacedNetworkPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind NetworkPolicy operationId: listExtensionsV1beta1NamespacedNetworkPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.extensions.v1beta1.NetworkPolicyList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a NetworkPolicy operationId: createExtensionsV1beta1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}: delete: consumes: - '*/*' description: delete a NetworkPolicy operationId: deleteExtensionsV1beta1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 get: consumes: - '*/*' description: read the specified NetworkPolicy operationId: readExtensionsV1beta1NamespacedNetworkPolicy parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 parameters: - description: name of the NetworkPolicy 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified NetworkPolicy operationId: patchExtensionsV1beta1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 put: consumes: - '*/*' description: replace the specified NetworkPolicy operationId: replaceExtensionsV1beta1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/replicasets: delete: consumes: - '*/*' description: delete collection of ReplicaSet operationId: deleteExtensionsV1beta1CollectionNamespacedReplicaSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind ReplicaSet operationId: listExtensionsV1beta1NamespacedReplicaSet parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.extensions.v1beta1.ReplicaSetList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ReplicaSet operationId: createExtensionsV1beta1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}: delete: consumes: - '*/*' description: delete a ReplicaSet operationId: deleteExtensionsV1beta1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 get: consumes: - '*/*' description: read the specified ReplicaSet operationId: readExtensionsV1beta1NamespacedReplicaSet parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 parameters: - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ReplicaSet operationId: patchExtensionsV1beta1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 put: consumes: - '*/*' description: replace the specified ReplicaSet operationId: replaceExtensionsV1beta1NamespacedReplicaSet parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale: get: consumes: - '*/*' description: read scale of the specified ReplicaSet operationId: readExtensionsV1beta1NamespacedReplicaSetScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified ReplicaSet operationId: patchExtensionsV1beta1NamespacedReplicaSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 put: consumes: - '*/*' description: replace scale of the specified ReplicaSet operationId: replaceExtensionsV1beta1NamespacedReplicaSetScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status: get: consumes: - '*/*' description: read status of the specified ReplicaSet operationId: readExtensionsV1beta1NamespacedReplicaSetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 parameters: - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified ReplicaSet operationId: patchExtensionsV1beta1NamespacedReplicaSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 put: consumes: - '*/*' description: replace status of the specified ReplicaSet operationId: replaceExtensionsV1beta1NamespacedReplicaSetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 /apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale: get: consumes: - '*/*' description: read scale of the specified ReplicationControllerDummy operationId: readExtensionsV1beta1NamespacedReplicationControllerDummyScale produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 parameters: - description: name of the Scale 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update scale of the specified ReplicationControllerDummy operationId: patchExtensionsV1beta1NamespacedReplicationControllerDummyScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 put: consumes: - '*/*' description: replace scale of the specified ReplicationControllerDummy operationId: replaceExtensionsV1beta1NamespacedReplicationControllerDummyScale parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: Scale version: v1beta1 /apis/extensions/v1beta1/networkpolicies: get: consumes: - '*/*' description: list or watch objects of kind NetworkPolicy operationId: listExtensionsV1beta1NetworkPolicyForAllNamespaces 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.extensions.v1beta1.NetworkPolicyList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/podsecuritypolicies: delete: consumes: - '*/*' description: delete collection of PodSecurityPolicy operationId: deleteExtensionsV1beta1CollectionPodSecurityPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind PodSecurityPolicy operationId: listExtensionsV1beta1PodSecurityPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PodSecurityPolicy operationId: createExtensionsV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 /apis/extensions/v1beta1/podsecuritypolicies/{name}: delete: consumes: - '*/*' description: delete a PodSecurityPolicy operationId: deleteExtensionsV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 get: consumes: - '*/*' description: read the specified PodSecurityPolicy operationId: readExtensionsV1beta1PodSecurityPolicy parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 parameters: - description: name of the PodSecurityPolicy in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PodSecurityPolicy operationId: patchExtensionsV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 put: consumes: - '*/*' description: replace the specified PodSecurityPolicy operationId: replaceExtensionsV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 /apis/extensions/v1beta1/replicasets: get: consumes: - '*/*' description: list or watch objects of kind ReplicaSet operationId: listExtensionsV1beta1ReplicaSetForAllNamespaces 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.extensions.v1beta1.ReplicaSetList' '401': description: Unauthorized schemes: - https tags: - extensions_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/daemonsets: get: consumes: - '*/*' description: watch individual changes to a list of DaemonSet operationId: watchExtensionsV1beta1DaemonSetListForAllNamespaces 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchExtensionsV1beta1DeploymentListForAllNamespaces 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/ingresses: get: consumes: - '*/*' description: watch individual changes to a list of Ingress operationId: watchExtensionsV1beta1IngressListForAllNamespaces 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets: get: consumes: - '*/*' description: watch individual changes to a list of DaemonSet operationId: watchExtensionsV1beta1NamespacedDaemonSetList 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind DaemonSet operationId: watchExtensionsV1beta1NamespacedDaemonSet 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: - extensions_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: extensions kind: DaemonSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the DaemonSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/deployments: get: consumes: - '*/*' description: watch individual changes to a list of Deployment operationId: watchExtensionsV1beta1NamespacedDeploymentList 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Deployment operationId: watchExtensionsV1beta1NamespacedDeployment 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: - extensions_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: extensions kind: Deployment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Deployment 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/ingresses: get: consumes: - '*/*' description: watch individual changes to a list of Ingress operationId: watchExtensionsV1beta1NamespacedIngressList 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Ingress operationId: watchExtensionsV1beta1NamespacedIngress 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: - extensions_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: extensions kind: Ingress version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Ingress 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies: get: consumes: - '*/*' description: watch individual changes to a list of NetworkPolicy operationId: watchExtensionsV1beta1NamespacedNetworkPolicyList 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}: get: consumes: - '*/*' description: watch changes to an object of kind NetworkPolicy operationId: watchExtensionsV1beta1NamespacedNetworkPolicy 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: - extensions_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the NetworkPolicy 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/replicasets: get: consumes: - '*/*' description: watch individual changes to a list of ReplicaSet operationId: watchExtensionsV1beta1NamespacedReplicaSetList 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ReplicaSet operationId: watchExtensionsV1beta1NamespacedReplicaSet 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: - extensions_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ReplicaSet 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/networkpolicies: get: consumes: - '*/*' description: watch individual changes to a list of NetworkPolicy operationId: watchExtensionsV1beta1NetworkPolicyListForAllNamespaces 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: NetworkPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/podsecuritypolicies: get: consumes: - '*/*' description: watch individual changes to a list of PodSecurityPolicy operationId: watchExtensionsV1beta1PodSecurityPolicyList 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/podsecuritypolicies/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PodSecurityPolicy operationId: watchExtensionsV1beta1PodSecurityPolicy 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: - extensions_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: extensions kind: PodSecurityPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PodSecurityPolicy in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/extensions/v1beta1/watch/replicasets: get: consumes: - '*/*' description: watch individual changes to a list of ReplicaSet operationId: watchExtensionsV1beta1ReplicaSetListForAllNamespaces 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: - extensions_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: extensions kind: ReplicaSet version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/networking.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getNetworkingAPIGroup 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: - networking /apis/networking.k8s.io/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getNetworkingV1APIResources 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: - networking_v1 /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies: delete: consumes: - '*/*' description: delete collection of NetworkPolicy operationId: deleteNetworkingV1CollectionNamespacedNetworkPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 get: consumes: - '*/*' description: list or watch objects of kind NetworkPolicy operationId: listNetworkingV1NamespacedNetworkPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.networking.v1.NetworkPolicyList' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a NetworkPolicy operationId: createNetworkingV1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}: delete: consumes: - '*/*' description: delete a NetworkPolicy operationId: deleteNetworkingV1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 get: consumes: - '*/*' description: read the specified NetworkPolicy operationId: readNetworkingV1NamespacedNetworkPolicy parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 parameters: - description: name of the NetworkPolicy 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified NetworkPolicy operationId: patchNetworkingV1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 put: consumes: - '*/*' description: replace the specified NetworkPolicy operationId: replaceNetworkingV1NamespacedNetworkPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 /apis/networking.k8s.io/v1/networkpolicies: get: consumes: - '*/*' description: list or watch objects of kind NetworkPolicy operationId: listNetworkingV1NetworkPolicyForAllNamespaces 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.networking.v1.NetworkPolicyList' '401': description: Unauthorized schemes: - https tags: - networking_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies: get: consumes: - '*/*' description: watch individual changes to a list of NetworkPolicy operationId: watchNetworkingV1NamespacedNetworkPolicyList 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: - networking_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}: get: consumes: - '*/*' description: watch changes to an object of kind NetworkPolicy operationId: watchNetworkingV1NamespacedNetworkPolicy 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: - networking_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the NetworkPolicy 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/networking.k8s.io/v1/watch/networkpolicies: get: consumes: - '*/*' description: watch individual changes to a list of NetworkPolicy operationId: watchNetworkingV1NetworkPolicyListForAllNamespaces 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: - networking_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: networking.k8s.io kind: NetworkPolicy version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/policy/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getPolicyAPIGroup 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: - policy /apis/policy/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getPolicyV1beta1APIResources 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: - policy_v1beta1 /apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets: delete: consumes: - '*/*' description: delete collection of PodDisruptionBudget operationId: deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind PodDisruptionBudget operationId: listPolicyV1beta1NamespacedPodDisruptionBudget parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PodDisruptionBudget operationId: createPolicyV1beta1NamespacedPodDisruptionBudget parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 /apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}: delete: consumes: - '*/*' description: delete a PodDisruptionBudget operationId: deletePolicyV1beta1NamespacedPodDisruptionBudget parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 get: consumes: - '*/*' description: read the specified PodDisruptionBudget operationId: readPolicyV1beta1NamespacedPodDisruptionBudget parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 parameters: - description: name of the PodDisruptionBudget 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PodDisruptionBudget operationId: patchPolicyV1beta1NamespacedPodDisruptionBudget parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 put: consumes: - '*/*' description: replace the specified PodDisruptionBudget operationId: replacePolicyV1beta1NamespacedPodDisruptionBudget parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 /apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status: get: consumes: - '*/*' description: read status of the specified PodDisruptionBudget operationId: readPolicyV1beta1NamespacedPodDisruptionBudgetStatus produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 parameters: - description: name of the PodDisruptionBudget 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update status of the specified PodDisruptionBudget operationId: patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 put: consumes: - '*/*' description: replace status of the specified PodDisruptionBudget operationId: replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 /apis/policy/v1beta1/poddisruptionbudgets: get: consumes: - '*/*' description: list or watch objects of kind PodDisruptionBudget operationId: listPolicyV1beta1PodDisruptionBudgetForAllNamespaces 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.policy.v1beta1.PodDisruptionBudgetList' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/policy/v1beta1/podsecuritypolicies: delete: consumes: - '*/*' description: delete collection of PodSecurityPolicy operationId: deletePolicyV1beta1CollectionPodSecurityPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind PodSecurityPolicy operationId: listPolicyV1beta1PodSecurityPolicy parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.policy.v1beta1.PodSecurityPolicyList' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PodSecurityPolicy operationId: createPolicyV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 /apis/policy/v1beta1/podsecuritypolicies/{name}: delete: consumes: - '*/*' description: delete a PodSecurityPolicy operationId: deletePolicyV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 get: consumes: - '*/*' description: read the specified PodSecurityPolicy operationId: readPolicyV1beta1PodSecurityPolicy parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 parameters: - description: name of the PodSecurityPolicy in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PodSecurityPolicy operationId: patchPolicyV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 put: consumes: - '*/*' description: replace the specified PodSecurityPolicy operationId: replacePolicyV1beta1PodSecurityPolicy parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' '401': description: Unauthorized schemes: - https tags: - policy_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 /apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets: get: consumes: - '*/*' description: watch individual changes to a list of PodDisruptionBudget operationId: watchPolicyV1beta1NamespacedPodDisruptionBudgetList 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: - policy_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PodDisruptionBudget operationId: watchPolicyV1beta1NamespacedPodDisruptionBudget 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: - policy_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PodDisruptionBudget 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/policy/v1beta1/watch/poddisruptionbudgets: get: consumes: - '*/*' description: watch individual changes to a list of PodDisruptionBudget operationId: watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces 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: - policy_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: policy kind: PodDisruptionBudget version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/policy/v1beta1/watch/podsecuritypolicies: get: consumes: - '*/*' description: watch individual changes to a list of PodSecurityPolicy operationId: watchPolicyV1beta1PodSecurityPolicyList 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: - policy_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/policy/v1beta1/watch/podsecuritypolicies/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PodSecurityPolicy operationId: watchPolicyV1beta1PodSecurityPolicy 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: - policy_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: policy kind: PodSecurityPolicy version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PodSecurityPolicy in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getRbacAuthorizationAPIGroup 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: - rbacAuthorization /apis/rbac.authorization.k8s.io/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getRbacAuthorizationV1APIResources 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: - rbacAuthorization_v1 /apis/rbac.authorization.k8s.io/v1/clusterrolebindings: delete: consumes: - '*/*' description: delete collection of ClusterRoleBinding operationId: deleteRbacAuthorizationV1CollectionClusterRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 get: consumes: - '*/*' description: list or watch objects of kind ClusterRoleBinding operationId: listRbacAuthorizationV1ClusterRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1.ClusterRoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ClusterRoleBinding operationId: createRbacAuthorizationV1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}: delete: consumes: - '*/*' description: delete a ClusterRoleBinding operationId: deleteRbacAuthorizationV1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 get: consumes: - '*/*' description: read the specified ClusterRoleBinding operationId: readRbacAuthorizationV1ClusterRoleBinding produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 parameters: - description: name of the ClusterRoleBinding in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ClusterRoleBinding operationId: patchRbacAuthorizationV1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 put: consumes: - '*/*' description: replace the specified ClusterRoleBinding operationId: replaceRbacAuthorizationV1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 /apis/rbac.authorization.k8s.io/v1/clusterroles: delete: consumes: - '*/*' description: delete collection of ClusterRole operationId: deleteRbacAuthorizationV1CollectionClusterRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 get: consumes: - '*/*' description: list or watch objects of kind ClusterRole operationId: listRbacAuthorizationV1ClusterRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1.ClusterRoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ClusterRole operationId: createRbacAuthorizationV1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 /apis/rbac.authorization.k8s.io/v1/clusterroles/{name}: delete: consumes: - '*/*' description: delete a ClusterRole operationId: deleteRbacAuthorizationV1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 get: consumes: - '*/*' description: read the specified ClusterRole operationId: readRbacAuthorizationV1ClusterRole produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 parameters: - description: name of the ClusterRole in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ClusterRole operationId: patchRbacAuthorizationV1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 put: consumes: - '*/*' description: replace the specified ClusterRole operationId: replaceRbacAuthorizationV1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings: delete: consumes: - '*/*' description: delete collection of RoleBinding operationId: deleteRbacAuthorizationV1CollectionNamespacedRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 get: consumes: - '*/*' description: list or watch objects of kind RoleBinding operationId: listRbacAuthorizationV1NamespacedRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1.RoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a RoleBinding operationId: createRbacAuthorizationV1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}: delete: consumes: - '*/*' description: delete a RoleBinding operationId: deleteRbacAuthorizationV1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 get: consumes: - '*/*' description: read the specified RoleBinding operationId: readRbacAuthorizationV1NamespacedRoleBinding produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 parameters: - description: name of the RoleBinding 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified RoleBinding operationId: patchRbacAuthorizationV1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 put: consumes: - '*/*' description: replace the specified RoleBinding operationId: replaceRbacAuthorizationV1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles: delete: consumes: - '*/*' description: delete collection of Role operationId: deleteRbacAuthorizationV1CollectionNamespacedRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 get: consumes: - '*/*' description: list or watch objects of kind Role operationId: listRbacAuthorizationV1NamespacedRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1.RoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Role operationId: createRbacAuthorizationV1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}: delete: consumes: - '*/*' description: delete a Role operationId: deleteRbacAuthorizationV1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 get: consumes: - '*/*' description: read the specified Role operationId: readRbacAuthorizationV1NamespacedRole produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 parameters: - description: name of the Role 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Role operationId: patchRbacAuthorizationV1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 put: consumes: - '*/*' description: replace the specified Role operationId: replaceRbacAuthorizationV1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 /apis/rbac.authorization.k8s.io/v1/rolebindings: get: consumes: - '*/*' description: list or watch objects of kind RoleBinding operationId: listRbacAuthorizationV1RoleBindingForAllNamespaces 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.rbac.v1.RoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/roles: get: consumes: - '*/*' description: list or watch objects of kind Role operationId: listRbacAuthorizationV1RoleForAllNamespaces 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.rbac.v1.RoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/clusterrolebindings: get: consumes: - '*/*' description: watch individual changes to a list of ClusterRoleBinding operationId: watchRbacAuthorizationV1ClusterRoleBindingList 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: - rbacAuthorization_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ClusterRoleBinding operationId: watchRbacAuthorizationV1ClusterRoleBinding 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: - rbacAuthorization_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ClusterRoleBinding in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/clusterroles: get: consumes: - '*/*' description: watch individual changes to a list of ClusterRole operationId: watchRbacAuthorizationV1ClusterRoleList 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: - rbacAuthorization_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ClusterRole operationId: watchRbacAuthorizationV1ClusterRole 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: - rbacAuthorization_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ClusterRole in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings: get: consumes: - '*/*' description: watch individual changes to a list of RoleBinding operationId: watchRbacAuthorizationV1NamespacedRoleBindingList 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: - rbacAuthorization_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}: get: consumes: - '*/*' description: watch changes to an object of kind RoleBinding operationId: watchRbacAuthorizationV1NamespacedRoleBinding 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: - rbacAuthorization_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the RoleBinding 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles: get: consumes: - '*/*' description: watch individual changes to a list of Role operationId: watchRbacAuthorizationV1NamespacedRoleList 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: - rbacAuthorization_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Role operationId: watchRbacAuthorizationV1NamespacedRole 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: - rbacAuthorization_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Role 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/rolebindings: get: consumes: - '*/*' description: watch individual changes to a list of RoleBinding operationId: watchRbacAuthorizationV1RoleBindingListForAllNamespaces 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: - rbacAuthorization_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1/watch/roles: get: consumes: - '*/*' description: watch individual changes to a list of Role operationId: watchRbacAuthorizationV1RoleListForAllNamespaces 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: - rbacAuthorization_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getRbacAuthorizationV1alpha1APIResources 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: - rbacAuthorization_v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings: delete: consumes: - '*/*' description: delete collection of ClusterRoleBinding operationId: deleteRbacAuthorizationV1alpha1CollectionClusterRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind ClusterRoleBinding operationId: listRbacAuthorizationV1alpha1ClusterRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ClusterRoleBinding operationId: createRbacAuthorizationV1alpha1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}: delete: consumes: - '*/*' description: delete a ClusterRoleBinding operationId: deleteRbacAuthorizationV1alpha1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 get: consumes: - '*/*' description: read the specified ClusterRoleBinding operationId: readRbacAuthorizationV1alpha1ClusterRoleBinding produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 parameters: - description: name of the ClusterRoleBinding in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ClusterRoleBinding operationId: patchRbacAuthorizationV1alpha1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 put: consumes: - '*/*' description: replace the specified ClusterRoleBinding operationId: replaceRbacAuthorizationV1alpha1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles: delete: consumes: - '*/*' description: delete collection of ClusterRole operationId: deleteRbacAuthorizationV1alpha1CollectionClusterRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind ClusterRole operationId: listRbacAuthorizationV1alpha1ClusterRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1alpha1.ClusterRoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ClusterRole operationId: createRbacAuthorizationV1alpha1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}: delete: consumes: - '*/*' description: delete a ClusterRole operationId: deleteRbacAuthorizationV1alpha1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 get: consumes: - '*/*' description: read the specified ClusterRole operationId: readRbacAuthorizationV1alpha1ClusterRole produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 parameters: - description: name of the ClusterRole in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ClusterRole operationId: patchRbacAuthorizationV1alpha1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 put: consumes: - '*/*' description: replace the specified ClusterRole operationId: replaceRbacAuthorizationV1alpha1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings: delete: consumes: - '*/*' description: delete collection of RoleBinding operationId: deleteRbacAuthorizationV1alpha1CollectionNamespacedRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind RoleBinding operationId: listRbacAuthorizationV1alpha1NamespacedRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1alpha1.RoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a RoleBinding operationId: createRbacAuthorizationV1alpha1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}: delete: consumes: - '*/*' description: delete a RoleBinding operationId: deleteRbacAuthorizationV1alpha1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 get: consumes: - '*/*' description: read the specified RoleBinding operationId: readRbacAuthorizationV1alpha1NamespacedRoleBinding produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 parameters: - description: name of the RoleBinding 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified RoleBinding operationId: patchRbacAuthorizationV1alpha1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 put: consumes: - '*/*' description: replace the specified RoleBinding operationId: replaceRbacAuthorizationV1alpha1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles: delete: consumes: - '*/*' description: delete collection of Role operationId: deleteRbacAuthorizationV1alpha1CollectionNamespacedRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind Role operationId: listRbacAuthorizationV1alpha1NamespacedRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1alpha1.RoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Role operationId: createRbacAuthorizationV1alpha1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}: delete: consumes: - '*/*' description: delete a Role operationId: deleteRbacAuthorizationV1alpha1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 get: consumes: - '*/*' description: read the specified Role operationId: readRbacAuthorizationV1alpha1NamespacedRole produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 parameters: - description: name of the Role 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Role operationId: patchRbacAuthorizationV1alpha1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 put: consumes: - '*/*' description: replace the specified Role operationId: replaceRbacAuthorizationV1alpha1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 /apis/rbac.authorization.k8s.io/v1alpha1/rolebindings: get: consumes: - '*/*' description: list or watch objects of kind RoleBinding operationId: listRbacAuthorizationV1alpha1RoleBindingForAllNamespaces 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.rbac.v1alpha1.RoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/roles: get: consumes: - '*/*' description: list or watch objects of kind Role operationId: listRbacAuthorizationV1alpha1RoleForAllNamespaces 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.rbac.v1alpha1.RoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings: get: consumes: - '*/*' description: watch individual changes to a list of ClusterRoleBinding operationId: watchRbacAuthorizationV1alpha1ClusterRoleBindingList 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ClusterRoleBinding operationId: watchRbacAuthorizationV1alpha1ClusterRoleBinding 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ClusterRoleBinding in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles: get: consumes: - '*/*' description: watch individual changes to a list of ClusterRole operationId: watchRbacAuthorizationV1alpha1ClusterRoleList 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ClusterRole operationId: watchRbacAuthorizationV1alpha1ClusterRole 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ClusterRole in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings: get: consumes: - '*/*' description: watch individual changes to a list of RoleBinding operationId: watchRbacAuthorizationV1alpha1NamespacedRoleBindingList 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings/{name}: get: consumes: - '*/*' description: watch changes to an object of kind RoleBinding operationId: watchRbacAuthorizationV1alpha1NamespacedRoleBinding 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the RoleBinding 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles: get: consumes: - '*/*' description: watch individual changes to a list of Role operationId: watchRbacAuthorizationV1alpha1NamespacedRoleList 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Role operationId: watchRbacAuthorizationV1alpha1NamespacedRole 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Role 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/rolebindings: get: consumes: - '*/*' description: watch individual changes to a list of RoleBinding operationId: watchRbacAuthorizationV1alpha1RoleBindingListForAllNamespaces 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1alpha1/watch/roles: get: consumes: - '*/*' description: watch individual changes to a list of Role operationId: watchRbacAuthorizationV1alpha1RoleListForAllNamespaces 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: - rbacAuthorization_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getRbacAuthorizationV1beta1APIResources 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: - rbacAuthorization_v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings: delete: consumes: - '*/*' description: delete collection of ClusterRoleBinding operationId: deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind ClusterRoleBinding operationId: listRbacAuthorizationV1beta1ClusterRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ClusterRoleBinding operationId: createRbacAuthorizationV1beta1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}: delete: consumes: - '*/*' description: delete a ClusterRoleBinding operationId: deleteRbacAuthorizationV1beta1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 get: consumes: - '*/*' description: read the specified ClusterRoleBinding operationId: readRbacAuthorizationV1beta1ClusterRoleBinding produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 parameters: - description: name of the ClusterRoleBinding in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ClusterRoleBinding operationId: patchRbacAuthorizationV1beta1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 put: consumes: - '*/*' description: replace the specified ClusterRoleBinding operationId: replaceRbacAuthorizationV1beta1ClusterRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/clusterroles: delete: consumes: - '*/*' description: delete collection of ClusterRole operationId: deleteRbacAuthorizationV1beta1CollectionClusterRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind ClusterRole operationId: listRbacAuthorizationV1beta1ClusterRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1beta1.ClusterRoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a ClusterRole operationId: createRbacAuthorizationV1beta1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}: delete: consumes: - '*/*' description: delete a ClusterRole operationId: deleteRbacAuthorizationV1beta1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 get: consumes: - '*/*' description: read the specified ClusterRole operationId: readRbacAuthorizationV1beta1ClusterRole produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 parameters: - description: name of the ClusterRole in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified ClusterRole operationId: patchRbacAuthorizationV1beta1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 put: consumes: - '*/*' description: replace the specified ClusterRole operationId: replaceRbacAuthorizationV1beta1ClusterRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings: delete: consumes: - '*/*' description: delete collection of RoleBinding operationId: deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind RoleBinding operationId: listRbacAuthorizationV1beta1NamespacedRoleBinding parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1beta1.RoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a RoleBinding operationId: createRbacAuthorizationV1beta1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}: delete: consumes: - '*/*' description: delete a RoleBinding operationId: deleteRbacAuthorizationV1beta1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 get: consumes: - '*/*' description: read the specified RoleBinding operationId: readRbacAuthorizationV1beta1NamespacedRoleBinding produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 parameters: - description: name of the RoleBinding 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified RoleBinding operationId: patchRbacAuthorizationV1beta1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 put: consumes: - '*/*' description: replace the specified RoleBinding operationId: replaceRbacAuthorizationV1beta1NamespacedRoleBinding parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles: delete: consumes: - '*/*' description: delete collection of Role operationId: deleteRbacAuthorizationV1beta1CollectionNamespacedRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind Role operationId: listRbacAuthorizationV1beta1NamespacedRole parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.rbac.v1beta1.RoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a Role operationId: createRbacAuthorizationV1beta1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}: delete: consumes: - '*/*' description: delete a Role operationId: deleteRbacAuthorizationV1beta1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 get: consumes: - '*/*' description: read the specified Role operationId: readRbacAuthorizationV1beta1NamespacedRole produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 parameters: - description: name of the Role 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified Role operationId: patchRbacAuthorizationV1beta1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 put: consumes: - '*/*' description: replace the specified Role operationId: replaceRbacAuthorizationV1beta1NamespacedRole parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 /apis/rbac.authorization.k8s.io/v1beta1/rolebindings: get: consumes: - '*/*' description: list or watch objects of kind RoleBinding operationId: listRbacAuthorizationV1beta1RoleBindingForAllNamespaces 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.rbac.v1beta1.RoleBindingList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/roles: get: consumes: - '*/*' description: list or watch objects of kind Role operationId: listRbacAuthorizationV1beta1RoleForAllNamespaces 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.rbac.v1beta1.RoleList' '401': description: Unauthorized schemes: - https tags: - rbacAuthorization_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings: get: consumes: - '*/*' description: watch individual changes to a list of ClusterRoleBinding operationId: watchRbacAuthorizationV1beta1ClusterRoleBindingList 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ClusterRoleBinding operationId: watchRbacAuthorizationV1beta1ClusterRoleBinding 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ClusterRoleBinding in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/clusterroles: get: consumes: - '*/*' description: watch individual changes to a list of ClusterRole operationId: watchRbacAuthorizationV1beta1ClusterRoleList 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}: get: consumes: - '*/*' description: watch changes to an object of kind ClusterRole operationId: watchRbacAuthorizationV1beta1ClusterRole 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the ClusterRole in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings: get: consumes: - '*/*' description: watch individual changes to a list of RoleBinding operationId: watchRbacAuthorizationV1beta1NamespacedRoleBindingList 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}: get: consumes: - '*/*' description: watch changes to an object of kind RoleBinding operationId: watchRbacAuthorizationV1beta1NamespacedRoleBinding 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the RoleBinding 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles: get: consumes: - '*/*' description: watch individual changes to a list of Role operationId: watchRbacAuthorizationV1beta1NamespacedRoleList 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}: get: consumes: - '*/*' description: watch changes to an object of kind Role operationId: watchRbacAuthorizationV1beta1NamespacedRole 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the Role 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/rolebindings: get: consumes: - '*/*' description: watch individual changes to a list of RoleBinding operationId: watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/rbac.authorization.k8s.io/v1beta1/watch/roles: get: consumes: - '*/*' description: watch individual changes to a list of Role operationId: watchRbacAuthorizationV1beta1RoleListForAllNamespaces 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: - rbacAuthorization_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: rbac.authorization.k8s.io kind: Role version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getSchedulingAPIGroup 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: - scheduling /apis/scheduling.k8s.io/v1alpha1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getSchedulingV1alpha1APIResources 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: - scheduling_v1alpha1 /apis/scheduling.k8s.io/v1alpha1/priorityclasses: delete: consumes: - '*/*' description: delete collection of PriorityClass operationId: deleteSchedulingV1alpha1CollectionPriorityClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - scheduling_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind PriorityClass operationId: listSchedulingV1alpha1PriorityClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.scheduling.v1alpha1.PriorityClassList' '401': description: Unauthorized schemes: - https tags: - scheduling_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PriorityClass operationId: createSchedulingV1alpha1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 /apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}: delete: consumes: - '*/*' description: delete a PriorityClass operationId: deleteSchedulingV1alpha1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - scheduling_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 get: consumes: - '*/*' description: read the specified PriorityClass operationId: readSchedulingV1alpha1PriorityClass parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 parameters: - description: name of the PriorityClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PriorityClass operationId: patchSchedulingV1alpha1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 put: consumes: - '*/*' description: replace the specified PriorityClass operationId: replaceSchedulingV1alpha1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 /apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses: get: consumes: - '*/*' description: watch individual changes to a list of PriorityClass operationId: watchSchedulingV1alpha1PriorityClassList 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: - scheduling_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1alpha1/watch/priorityclasses/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PriorityClass operationId: watchSchedulingV1alpha1PriorityClass 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: - scheduling_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PriorityClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getSchedulingV1beta1APIResources 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: - scheduling_v1beta1 /apis/scheduling.k8s.io/v1beta1/priorityclasses: delete: consumes: - '*/*' description: delete collection of PriorityClass operationId: deleteSchedulingV1beta1CollectionPriorityClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - scheduling_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind PriorityClass operationId: listSchedulingV1beta1PriorityClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.scheduling.v1beta1.PriorityClassList' '401': description: Unauthorized schemes: - https tags: - scheduling_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PriorityClass operationId: createSchedulingV1beta1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 /apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}: delete: consumes: - '*/*' description: delete a PriorityClass operationId: deleteSchedulingV1beta1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - scheduling_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 get: consumes: - '*/*' description: read the specified PriorityClass operationId: readSchedulingV1beta1PriorityClass parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 parameters: - description: name of the PriorityClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PriorityClass operationId: patchSchedulingV1beta1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 put: consumes: - '*/*' description: replace the specified PriorityClass operationId: replaceSchedulingV1beta1PriorityClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' '401': description: Unauthorized schemes: - https tags: - scheduling_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 /apis/scheduling.k8s.io/v1beta1/watch/priorityclasses: get: consumes: - '*/*' description: watch individual changes to a list of PriorityClass operationId: watchSchedulingV1beta1PriorityClassList 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: - scheduling_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/v1beta1/watch/priorityclasses/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PriorityClass operationId: watchSchedulingV1beta1PriorityClass 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: - scheduling_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: scheduling.k8s.io kind: PriorityClass version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PriorityClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/settings.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getSettingsAPIGroup 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: - settings /apis/settings.k8s.io/v1alpha1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getSettingsV1alpha1APIResources 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: - settings_v1alpha1 /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets: delete: consumes: - '*/*' description: delete collection of PodPreset operationId: deleteSettingsV1alpha1CollectionNamespacedPodPreset parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind PodPreset operationId: listSettingsV1alpha1NamespacedPodPreset parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.settings.v1alpha1.PodPresetList' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 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. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a PodPreset operationId: createSettingsV1alpha1NamespacedPodPreset parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}: delete: consumes: - '*/*' description: delete a PodPreset operationId: deleteSettingsV1alpha1NamespacedPodPreset parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 get: consumes: - '*/*' description: read the specified PodPreset operationId: readSettingsV1alpha1NamespacedPodPreset parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 parameters: - description: name of the PodPreset 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. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified PodPreset operationId: patchSettingsV1alpha1NamespacedPodPreset parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 put: consumes: - '*/*' description: replace the specified PodPreset operationId: replaceSettingsV1alpha1NamespacedPodPreset parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 /apis/settings.k8s.io/v1alpha1/podpresets: get: consumes: - '*/*' description: list or watch objects of kind PodPreset operationId: listSettingsV1alpha1PodPresetForAllNamespaces 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.settings.v1alpha1.PodPresetList' '401': description: Unauthorized schemes: - https tags: - settings_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets: get: consumes: - '*/*' description: watch individual changes to a list of PodPreset operationId: watchSettingsV1alpha1NamespacedPodPresetList 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: - settings_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets/{name}: get: consumes: - '*/*' description: watch changes to an object of kind PodPreset operationId: watchSettingsV1alpha1NamespacedPodPreset 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: - settings_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the PodPreset 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. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/settings.k8s.io/v1alpha1/watch/podpresets: get: consumes: - '*/*' description: watch individual changes to a list of PodPreset operationId: watchSettingsV1alpha1PodPresetListForAllNamespaces 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: - settings_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: settings.k8s.io kind: PodPreset version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get information of a group operationId: getStorageAPIGroup 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: - storage /apis/storage.k8s.io/v1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getStorageV1APIResources 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: - storage_v1 /apis/storage.k8s.io/v1/storageclasses: delete: consumes: - '*/*' description: delete collection of StorageClass operationId: deleteStorageV1CollectionStorageClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 get: consumes: - '*/*' description: list or watch objects of kind StorageClass operationId: listStorageV1StorageClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.storage.v1.StorageClassList' '401': description: Unauthorized schemes: - https tags: - storage_v1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a StorageClass operationId: createStorageV1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 /apis/storage.k8s.io/v1/storageclasses/{name}: delete: consumes: - '*/*' description: delete a StorageClass operationId: deleteStorageV1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 get: consumes: - '*/*' description: read the specified StorageClass operationId: readStorageV1StorageClass parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 parameters: - description: name of the StorageClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified StorageClass operationId: patchStorageV1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 put: consumes: - '*/*' description: replace the specified StorageClass operationId: replaceStorageV1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 /apis/storage.k8s.io/v1/watch/storageclasses: get: consumes: - '*/*' description: watch individual changes to a list of StorageClass operationId: watchStorageV1StorageClassList 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: - storage_v1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/v1/watch/storageclasses/{name}: get: consumes: - '*/*' description: watch changes to an object of kind StorageClass operationId: watchStorageV1StorageClass 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: - storage_v1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the StorageClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/v1alpha1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getStorageV1alpha1APIResources 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: - storage_v1alpha1 /apis/storage.k8s.io/v1alpha1/volumeattachments: delete: consumes: - '*/*' description: delete collection of VolumeAttachment operationId: deleteStorageV1alpha1CollectionVolumeAttachment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1alpha1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 get: consumes: - '*/*' description: list or watch objects of kind VolumeAttachment operationId: listStorageV1alpha1VolumeAttachment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.storage.v1alpha1.VolumeAttachmentList' '401': description: Unauthorized schemes: - https tags: - storage_v1alpha1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a VolumeAttachment operationId: createStorageV1alpha1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1alpha1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 /apis/storage.k8s.io/v1alpha1/volumeattachments/{name}: delete: consumes: - '*/*' description: delete a VolumeAttachment operationId: deleteStorageV1alpha1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1alpha1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 get: consumes: - '*/*' description: read the specified VolumeAttachment operationId: readStorageV1alpha1VolumeAttachment parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1alpha1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 parameters: - description: name of the VolumeAttachment in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified VolumeAttachment operationId: patchStorageV1alpha1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1alpha1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 put: consumes: - '*/*' description: replace the specified VolumeAttachment operationId: replaceStorageV1alpha1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1alpha1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 /apis/storage.k8s.io/v1alpha1/watch/volumeattachments: get: consumes: - '*/*' description: watch individual changes to a list of VolumeAttachment operationId: watchStorageV1alpha1VolumeAttachmentList 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: - storage_v1alpha1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/v1alpha1/watch/volumeattachments/{name}: get: consumes: - '*/*' description: watch changes to an object of kind VolumeAttachment operationId: watchStorageV1alpha1VolumeAttachment 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: - storage_v1alpha1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the VolumeAttachment in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/v1beta1/: get: consumes: - application/json - application/yaml - application/vnd.kubernetes.protobuf description: get available resources operationId: getStorageV1beta1APIResources 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: - storage_v1beta1 /apis/storage.k8s.io/v1beta1/storageclasses: delete: consumes: - '*/*' description: delete collection of StorageClass operationId: deleteStorageV1beta1CollectionStorageClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind StorageClass operationId: listStorageV1beta1StorageClass parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.storage.v1beta1.StorageClassList' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a StorageClass operationId: createStorageV1beta1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 /apis/storage.k8s.io/v1beta1/storageclasses/{name}: delete: consumes: - '*/*' description: delete a StorageClass operationId: deleteStorageV1beta1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 get: consumes: - '*/*' description: read the specified StorageClass operationId: readStorageV1beta1StorageClass parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 parameters: - description: name of the StorageClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified StorageClass operationId: patchStorageV1beta1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 put: consumes: - '*/*' description: replace the specified StorageClass operationId: replaceStorageV1beta1StorageClass parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 /apis/storage.k8s.io/v1beta1/volumeattachments: delete: consumes: - '*/*' description: delete collection of VolumeAttachment operationId: deleteStorageV1beta1CollectionVolumeAttachment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: deletecollection x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 get: consumes: - '*/*' description: list or watch objects of kind VolumeAttachment operationId: listStorageV1beta1VolumeAttachment parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/io.k8s.api.storage.v1beta1.VolumeAttachmentList' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: list x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 parameters: - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true post: consumes: - '*/*' description: create a VolumeAttachment operationId: createStorageV1beta1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' '202': description: Accepted schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: post x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 /apis/storage.k8s.io/v1beta1/volumeattachments/{name}: delete: consumes: - '*/*' description: delete a VolumeAttachment operationId: deleteStorageV1beta1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' - 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/io.k8s.apimachinery.pkg.apis.meta.v1.Status' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: delete x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 get: consumes: - '*/*' description: read the specified VolumeAttachment operationId: readStorageV1beta1VolumeAttachment parameters: - description: Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. in: query name: exact type: boolean uniqueItems: true - description: Should this value be exported. Export strips fields that a user can not specify. in: query name: export type: boolean uniqueItems: true produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: get x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 parameters: - description: name of the VolumeAttachment in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true patch: consumes: - application/json-patch+json - application/merge-patch+json - application/strategic-merge-patch+json description: partially update the specified VolumeAttachment operationId: patchStorageV1beta1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: patch x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 put: consumes: - '*/*' description: replace the specified VolumeAttachment operationId: replaceStorageV1beta1VolumeAttachment parameters: - in: body name: body required: true schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' produces: - application/json - application/yaml - application/vnd.kubernetes.protobuf responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' '201': description: Created schema: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' '401': description: Unauthorized schemes: - https tags: - storage_v1beta1 x-kubernetes-action: put x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 /apis/storage.k8s.io/v1beta1/watch/storageclasses: get: consumes: - '*/*' description: watch individual changes to a list of StorageClass operationId: watchStorageV1beta1StorageClassList 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: - storage_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/v1beta1/watch/storageclasses/{name}: get: consumes: - '*/*' description: watch changes to an object of kind StorageClass operationId: watchStorageV1beta1StorageClass 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: - storage_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: storage.k8s.io kind: StorageClass version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the StorageClass in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/v1beta1/watch/volumeattachments: get: consumes: - '*/*' description: watch individual changes to a list of VolumeAttachment operationId: watchStorageV1beta1VolumeAttachmentList 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: - storage_v1beta1 x-kubernetes-action: watchlist x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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/storage.k8s.io/v1beta1/watch/volumeattachments/{name}: get: consumes: - '*/*' description: watch changes to an object of kind VolumeAttachment operationId: watchStorageV1beta1VolumeAttachment 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: - storage_v1beta1 x-kubernetes-action: watch x-kubernetes-group-version-kind: group: storage.k8s.io kind: VolumeAttachment version: v1beta1 parameters: - 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 indicating the client must restart their list without the continue field. 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. 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: If true, partially initialized resources are included in the response. in: query name: includeUninitialized type: boolean 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. 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.' in: query name: limit type: integer uniqueItems: true - description: name of the VolumeAttachment in: path name: name required: true type: string uniqueItems: true - description: If 'true', then the output is pretty printed. in: query name: pretty type: string uniqueItems: true - description: 'When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it''s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.' in: query name: resourceVersion type: string 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 responses: '401': description: Unauthorized schemes: - https tags: - logs /logs/{logpath}: get: operationId: logFileHandler responses: '401': description: Unauthorized schemes: - https tags: - logs parameters: - description: path to the log in: path name: logpath required: true type: string uniqueItems: true /version/: get: consumes: - application/json description: get the code version operationId: getCodeVersion produces: - application/json responses: '200': description: OK schema: $ref: '#/definitions/io.k8s.apimachinery.pkg.version.Info' '401': description: Unauthorized schemes: - https tags: - version definitions: io.k8s.api.admissionregistration.v1alpha1.Initializer: description: Initializer describes the name and the failure policy of an initializer, and what resources it applies to. properties: name: description: Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where "alwayspullimages" is the name of the webhook, and kubernetes.io is the name of the organization. Required type: string rules: description: Rules describes what resources/subresources the initializer cares about. The initializer cares about an operation if it matches _any_ Rule. Rule.Resources must not include subresources. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.Rule' type: array required: - name io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration: description: InitializerConfiguration describes the configuration of initializers. 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/api-conventions.md#resources' type: string initializers: description: Initializers is a list of resources and their default initializers Order-sensitive. When merging multiple InitializerConfigurations, we sort the initializers from different InitializerConfigurations by the name of the InitializerConfigurations; the order of the initializers from the same InitializerConfiguration is preserved. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.Initializer' type: array x-kubernetes-patch-merge-key: name 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/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/api-conventions.md#metadata.' x-kubernetes-group-version-kind: - group: admissionregistration.k8s.io kind: InitializerConfiguration version: v1alpha1 io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList: description: InitializerConfigurationList is a list of InitializerConfiguration. 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/api-conventions.md#resources' type: string items: description: List of InitializerConfiguration. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: admissionregistration.k8s.io kind: InitializerConfigurationList version: v1alpha1 io.k8s.api.admissionregistration.v1alpha1.Rule: description: Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid. 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 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 resources: description: '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.' items: type: string type: array io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration: description: MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. 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/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/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/api-conventions.md#metadata.' webhooks: description: Webhooks is a list of webhooks and the affected resources and operations. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge x-kubernetes-group-version-kind: - group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration version: v1beta1 io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList: description: MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration. 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/api-conventions.md#resources' type: string items: description: List of MutatingWebhookConfiguration. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: admissionregistration.k8s.io kind: MutatingWebhookConfigurationList version: v1beta1 io.k8s.api.admissionregistration.v1beta1.RuleWithOperations: description: RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid. 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 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 operations: description: Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required. items: type: string type: array resources: description: '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.' items: type: string type: array io.k8s.api.admissionregistration.v1beta1.ServiceReference: description: ServiceReference holds a reference to Service.legacy.k8s.io properties: name: description: '`name` is the name of the service. Required' type: string namespace: description: '`namespace` is the namespace of the service. Required' type: string path: description: '`path` is an optional URL path which will be sent in any request to this service.' type: string required: - namespace - name io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration: description: ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and 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/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/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/api-conventions.md#metadata.' webhooks: description: Webhooks is a list of webhooks and the affected resources and operations. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge x-kubernetes-group-version-kind: - group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration version: v1beta1 io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList: description: ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration. 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/api-conventions.md#resources' type: string items: description: List of ValidatingWebhookConfiguration. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: admissionregistration.k8s.io kind: ValidatingWebhookConfigurationList version: v1beta1 io.k8s.api.admissionregistration.v1beta1.Webhook: description: Webhook describes an admission webhook and the resources and operations it applies to. properties: clientConfig: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig' description: ClientConfig defines how to communicate with the hook. Required failurePolicy: description: FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore. type: string name: description: 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. type: string namespaceSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: "NamespaceSelector decides whether to run the webhook 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 webhook.\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 webhook 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." rules: description: Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects. items: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations' type: array required: - name - clientConfig io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig: description: WebhookClientConfig contains the information to make a TLS connection with the webhook properties: caBundle: description: '`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook''s server certificate. Required.' format: byte type: string service: $ref: '#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference' description: '`service` is a reference to the service for this webhook. Either `service` or `url` must be specified. If the webhook is running within the cluster, then you should use `service`. Port 443 will be used if it is open, otherwise it is an error.' url: description: '`url` gives the location of the webhook, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified. The `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address. Please note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster. The scheme must be "https"; the URL must begin with "https://". A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier. Attempting to use a user or basic auth e.g. "user:password@" is not allowed. Fragments ("#...") and query parameters ("?...") are not allowed, either.' type: string required: - caBundle io.k8s.api.apps.v1.ControllerRevision: description: ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers. 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/api-conventions.md#resources' type: string data: $ref: '#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension' description: Data is the serialized representation of the state. 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' revision: description: Revision indicates the revision of the state represented by Data. format: int64 type: integer required: - revision x-kubernetes-group-version-kind: - group: apps kind: ControllerRevision version: v1 io.k8s.api.apps.v1.ControllerRevisionList: description: ControllerRevisionList is a resource containing a list of ControllerRevision objects. 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/api-conventions.md#resources' type: string items: description: Items is the list of ControllerRevisions items: $ref: '#/definitions/io.k8s.api.apps.v1.ControllerRevision' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: 'More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: apps kind: ControllerRevisionList version: v1 io.k8s.api.apps.v1.DaemonSet: description: DaemonSet represents the configuration of a daemon set. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSetSpec' description: 'The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSetStatus' description: 'The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: apps kind: DaemonSet version: v1 io.k8s.api.apps.v1.DaemonSetCondition: description: DaemonSetCondition describes the state of a DaemonSet at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 DaemonSet condition. type: string required: - type - status io.k8s.api.apps.v1.DaemonSetList: description: DaemonSetList is a collection of daemon sets. 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/api-conventions.md#resources' type: string items: description: A list of daemon sets. items: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSet' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: apps kind: DaemonSetList version: v1 io.k8s.api.apps.v1.DaemonSetSpec: description: DaemonSetSpec is the specification of a daemon set. properties: minReadySeconds: description: The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). format: int32 type: integer revisionHistoryLimit: description: The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template''s node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template' updateStrategy: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy' description: An update strategy to replace existing DaemonSet pods with new pods. required: - selector - template io.k8s.api.apps.v1.DaemonSetStatus: description: DaemonSetStatus represents the current status of a daemon set. properties: collisionCount: description: Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. format: int32 type: integer conditions: description: Represents the latest available observations of a DaemonSet's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1.DaemonSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge currentNumberScheduled: description: 'The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer desiredNumberScheduled: description: 'The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer numberAvailable: description: The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds) format: int32 type: integer numberMisscheduled: description: 'The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer numberReady: description: The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready. format: int32 type: integer numberUnavailable: description: The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds) format: int32 type: integer observedGeneration: description: The most recent generation observed by the daemon set controller. format: int64 type: integer updatedNumberScheduled: description: The total number of nodes that are running updated daemon pod format: int32 type: integer required: - currentNumberScheduled - numberMisscheduled - desiredNumberScheduled - numberReady io.k8s.api.apps.v1.DaemonSetUpdateStrategy: description: DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet' description: Rolling update config params. Present only if type = "RollingUpdate". type: description: Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. type: string io.k8s.api.apps.v1.Deployment: description: Deployment enables declarative updates for Pods and ReplicaSets. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object metadata. spec: $ref: '#/definitions/io.k8s.api.apps.v1.DeploymentSpec' description: Specification of the desired behavior of the Deployment. status: $ref: '#/definitions/io.k8s.api.apps.v1.DeploymentStatus' description: Most recently observed status of the Deployment. x-kubernetes-group-version-kind: - group: apps kind: Deployment version: v1 io.k8s.api.apps.v1.DeploymentCondition: description: DeploymentCondition describes the state of a deployment at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 deployment condition. type: string required: - type - status io.k8s.api.apps.v1.DeploymentList: description: DeploymentList is a list of Deployments. 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/api-conventions.md#resources' type: string items: description: Items is the list of Deployments. items: $ref: '#/definitions/io.k8s.api.apps.v1.Deployment' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard list metadata. required: - items x-kubernetes-group-version-kind: - group: apps kind: DeploymentList version: v1 io.k8s.api.apps.v1.DeploymentSpec: description: DeploymentSpec is the specification of the desired behavior of the Deployment. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer paused: description: Indicates that the deployment is paused. type: boolean progressDeadlineSeconds: description: The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. format: int32 type: integer replicas: description: Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. format: int32 type: integer revisionHistoryLimit: description: The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels. strategy: $ref: '#/definitions/io.k8s.api.apps.v1.DeploymentStrategy' description: The deployment strategy to use to replace existing pods with new ones. template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: Template describes the pods that will be created. required: - selector - template io.k8s.api.apps.v1.DeploymentStatus: description: DeploymentStatus is the most recently observed status of the Deployment. properties: availableReplicas: description: Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. format: int32 type: integer collisionCount: description: Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet. format: int32 type: integer conditions: description: Represents the latest available observations of a deployment's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1.DeploymentCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge observedGeneration: description: The generation observed by the deployment controller. format: int64 type: integer readyReplicas: description: Total number of ready pods targeted by this deployment. format: int32 type: integer replicas: description: Total number of non-terminated pods targeted by this deployment (their labels match the selector). format: int32 type: integer unavailableReplicas: description: Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. format: int32 type: integer updatedReplicas: description: Total number of non-terminated pods targeted by this deployment that have the desired template spec. format: int32 type: integer io.k8s.api.apps.v1.DeploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment' description: Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string io.k8s.api.apps.v1.ReplicaSet: description: ReplicaSet ensures that a specified number of pod replicas are running at any given time. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec' description: 'Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus' description: 'Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: apps kind: ReplicaSet version: v1 io.k8s.api.apps.v1.ReplicaSetCondition: description: ReplicaSetCondition describes the state of a replica set at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: The last time the condition transitioned from one status to another. 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 replica set condition. type: string required: - type - status io.k8s.api.apps.v1.ReplicaSetList: description: ReplicaSetList is a collection of ReplicaSets. 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/api-conventions.md#resources' type: string items: description: 'List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller' items: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSet' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: apps kind: ReplicaSetList version: v1 io.k8s.api.apps.v1.ReplicaSetSpec: description: ReplicaSetSpec is the specification of a ReplicaSet. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer replicas: description: 'Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller' format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template' required: - selector io.k8s.api.apps.v1.ReplicaSetStatus: description: ReplicaSetStatus represents the current status of a ReplicaSet. properties: availableReplicas: description: The number of available replicas (ready for at least minReadySeconds) for this replica set. format: int32 type: integer conditions: description: Represents the latest available observations of a replica set's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge fullyLabeledReplicas: description: The number of pods that have labels matching the labels of the pod template of the replicaset. format: int32 type: integer observedGeneration: description: ObservedGeneration reflects the generation of the most recently observed ReplicaSet. format: int64 type: integer readyReplicas: description: The number of ready replicas for this replica set. format: int32 type: integer replicas: description: 'Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller' format: int32 type: integer required: - replicas io.k8s.api.apps.v1.RollingUpdateDaemonSet: description: Spec to control the desired behavior of daemon set rolling update. properties: maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.' io.k8s.api.apps.v1.RollingUpdateDeployment: description: Spec to control the desired behavior of rolling update. properties: maxSurge: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.' maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.' io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy: description: RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. properties: partition: description: Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0. format: int32 type: integer io.k8s.api.apps.v1.StatefulSet: description: "StatefulSet represents a set of pods with consistent identities.\ \ Identities are defined as:\n - Network: A single stable DNS and hostname.\n\ \ - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees\ \ that a given network identity will always map to the same storage identity." 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSetSpec' description: Spec defines the desired identities of pods in this set. status: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSetStatus' description: Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time. x-kubernetes-group-version-kind: - group: apps kind: StatefulSet version: v1 io.k8s.api.apps.v1.StatefulSetCondition: description: StatefulSetCondition describes the state of a statefulset at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 statefulset condition. type: string required: - type - status io.k8s.api.apps.v1.StatefulSetList: description: StatefulSetList is a collection of StatefulSets. 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/api-conventions.md#resources' type: string items: items: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSet' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: apps kind: StatefulSetList version: v1 io.k8s.api.apps.v1.StatefulSetSpec: description: A StatefulSetSpec is the specification of a StatefulSet. properties: podManagementPolicy: description: podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. type: string replicas: description: replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. format: int32 type: integer revisionHistoryLimit: description: revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'selector is a label query over pods that should match the replica count. It must match the pod template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' serviceName: description: 'serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller.' type: string template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. updateStrategy: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy' description: updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template. volumeClaimTemplates: description: volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. items: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' type: array required: - selector - template - serviceName io.k8s.api.apps.v1.StatefulSetStatus: description: StatefulSetStatus represents the current state of a StatefulSet. properties: collisionCount: description: collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. format: int32 type: integer conditions: description: Represents the latest available observations of a statefulset's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1.StatefulSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge currentReplicas: description: currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision. format: int32 type: integer currentRevision: description: currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas). type: string observedGeneration: description: observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server. format: int64 type: integer readyReplicas: description: readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. format: int32 type: integer replicas: description: replicas is the number of Pods created by the StatefulSet controller. format: int32 type: integer updateRevision: description: updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) type: string updatedReplicas: description: updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision. format: int32 type: integer required: - replicas io.k8s.api.apps.v1.StatefulSetUpdateStrategy: description: StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy' description: RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. type: description: Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate. type: string io.k8s.api.apps.v1beta1.ControllerRevision: description: DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers. 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/api-conventions.md#resources' type: string data: $ref: '#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension' description: Data is the serialized representation of the state. 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' revision: description: Revision indicates the revision of the state represented by Data. format: int64 type: integer required: - revision x-kubernetes-group-version-kind: - group: apps kind: ControllerRevision version: v1beta1 io.k8s.api.apps.v1beta1.ControllerRevisionList: description: ControllerRevisionList is a resource containing a list of ControllerRevision objects. 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/api-conventions.md#resources' type: string items: description: Items is the list of ControllerRevisions items: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: 'More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: apps kind: ControllerRevisionList version: v1beta1 io.k8s.api.apps.v1beta1.Deployment: description: DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object metadata. spec: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec' description: Specification of the desired behavior of the Deployment. status: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus' description: Most recently observed status of the Deployment. x-kubernetes-group-version-kind: - group: apps kind: Deployment version: v1beta1 io.k8s.api.apps.v1beta1.DeploymentCondition: description: DeploymentCondition describes the state of a deployment at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 deployment condition. type: string required: - type - status io.k8s.api.apps.v1beta1.DeploymentList: description: DeploymentList is a list of Deployments. 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/api-conventions.md#resources' type: string items: description: Items is the list of Deployments. items: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard list metadata. required: - items x-kubernetes-group-version-kind: - group: apps kind: DeploymentList version: v1beta1 io.k8s.api.apps.v1beta1.DeploymentRollback: description: DEPRECATED. DeploymentRollback stores the information required to rollback a deployment. 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/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/api-conventions.md#types-kinds' type: string name: description: 'Required: This must match the Name of a deployment.' type: string rollbackTo: $ref: '#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig' description: The config of this deployment rollback. updatedAnnotations: additionalProperties: type: string description: The annotations to be updated to a deployment type: object required: - name - rollbackTo x-kubernetes-group-version-kind: - group: apps kind: DeploymentRollback version: v1beta1 io.k8s.api.apps.v1beta1.DeploymentSpec: description: DeploymentSpec is the specification of the desired behavior of the Deployment. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer paused: description: Indicates that the deployment is paused. type: boolean progressDeadlineSeconds: description: The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. format: int32 type: integer replicas: description: Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. format: int32 type: integer revisionHistoryLimit: description: The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2. format: int32 type: integer rollbackTo: $ref: '#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig' description: DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done. selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. strategy: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy' description: The deployment strategy to use to replace existing pods with new ones. template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: Template describes the pods that will be created. required: - template io.k8s.api.apps.v1beta1.DeploymentStatus: description: DeploymentStatus is the most recently observed status of the Deployment. properties: availableReplicas: description: Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. format: int32 type: integer collisionCount: description: Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet. format: int32 type: integer conditions: description: Represents the latest available observations of a deployment's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge observedGeneration: description: The generation observed by the deployment controller. format: int64 type: integer readyReplicas: description: Total number of ready pods targeted by this deployment. format: int32 type: integer replicas: description: Total number of non-terminated pods targeted by this deployment (their labels match the selector). format: int32 type: integer unavailableReplicas: description: Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. format: int32 type: integer updatedReplicas: description: Total number of non-terminated pods targeted by this deployment that have the desired template spec. format: int32 type: integer io.k8s.api.apps.v1beta1.DeploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment' description: Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string io.k8s.api.apps.v1beta1.RollbackConfig: description: DEPRECATED. properties: revision: description: The revision to rollback to. If set to 0, rollback to the last revision. format: int64 type: integer io.k8s.api.apps.v1beta1.RollingUpdateDeployment: description: Spec to control the desired behavior of rolling update. properties: maxSurge: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.' maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.' io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy: description: RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. properties: partition: description: Partition indicates the ordinal at which the StatefulSet should be partitioned. format: int32 type: integer io.k8s.api.apps.v1beta1.Scale: description: Scale represents a scaling request for a resource. 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/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/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/api-conventions.md#metadata.' spec: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec' description: 'defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.' status: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus' description: 'current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.' x-kubernetes-group-version-kind: - group: apps kind: Scale version: v1beta1 io.k8s.api.apps.v1beta1.ScaleSpec: description: ScaleSpec describes the attributes of a scale subresource properties: replicas: description: desired number of instances for the scaled object. format: int32 type: integer io.k8s.api.apps.v1beta1.ScaleStatus: description: ScaleStatus represents the current status of a scale subresource. properties: replicas: description: actual number of observed instances of the scaled object. format: int32 type: integer selector: additionalProperties: type: string description: 'label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors' type: object targetSelector: description: 'label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' type: string required: - replicas io.k8s.api.apps.v1beta1.StatefulSet: description: "DEPRECATED - This group version of StatefulSet is deprecated by\ \ apps/v1beta2/StatefulSet. See the release notes for more information. StatefulSet\ \ represents a set of pods with consistent identities. Identities are defined\ \ as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims\ \ as requested.\nThe StatefulSet guarantees that a given network identity will\ \ always map to the same storage identity." 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec' description: Spec defines the desired identities of pods in this set. status: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus' description: Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time. x-kubernetes-group-version-kind: - group: apps kind: StatefulSet version: v1beta1 io.k8s.api.apps.v1beta1.StatefulSetCondition: description: StatefulSetCondition describes the state of a statefulset at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 statefulset condition. type: string required: - type - status io.k8s.api.apps.v1beta1.StatefulSetList: description: StatefulSetList is a collection of StatefulSets. 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/api-conventions.md#resources' type: string items: items: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: apps kind: StatefulSetList version: v1beta1 io.k8s.api.apps.v1beta1.StatefulSetSpec: description: A StatefulSetSpec is the specification of a StatefulSet. properties: podManagementPolicy: description: podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. type: string replicas: description: replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. format: int32 type: integer revisionHistoryLimit: description: revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' serviceName: description: 'serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller.' type: string template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. updateStrategy: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy' description: updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template. volumeClaimTemplates: description: volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. items: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' type: array required: - template - serviceName io.k8s.api.apps.v1beta1.StatefulSetStatus: description: StatefulSetStatus represents the current state of a StatefulSet. properties: collisionCount: description: collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. format: int32 type: integer conditions: description: Represents the latest available observations of a statefulset's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge currentReplicas: description: currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision. format: int32 type: integer currentRevision: description: currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas). type: string observedGeneration: description: observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server. format: int64 type: integer readyReplicas: description: readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. format: int32 type: integer replicas: description: replicas is the number of Pods created by the StatefulSet controller. format: int32 type: integer updateRevision: description: updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) type: string updatedReplicas: description: updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision. format: int32 type: integer required: - replicas io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy: description: StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy' description: RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. type: description: Type indicates the type of the StatefulSetUpdateStrategy. type: string io.k8s.api.apps.v1beta2.ControllerRevision: description: DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers. 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/api-conventions.md#resources' type: string data: $ref: '#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension' description: Data is the serialized representation of the state. 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' revision: description: Revision indicates the revision of the state represented by Data. format: int64 type: integer required: - revision x-kubernetes-group-version-kind: - group: apps kind: ControllerRevision version: v1beta2 io.k8s.api.apps.v1beta2.ControllerRevisionList: description: ControllerRevisionList is a resource containing a list of ControllerRevision objects. 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/api-conventions.md#resources' type: string items: description: Items is the list of ControllerRevisions items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: 'More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: apps kind: ControllerRevisionList version: v1beta2 io.k8s.api.apps.v1beta2.DaemonSet: description: DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSetSpec' description: 'The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSetStatus' description: 'The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: apps kind: DaemonSet version: v1beta2 io.k8s.api.apps.v1beta2.DaemonSetCondition: description: DaemonSetCondition describes the state of a DaemonSet at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 DaemonSet condition. type: string required: - type - status io.k8s.api.apps.v1beta2.DaemonSetList: description: DaemonSetList is a collection of daemon sets. 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/api-conventions.md#resources' type: string items: description: A list of daemon sets. items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSet' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: apps kind: DaemonSetList version: v1beta2 io.k8s.api.apps.v1beta2.DaemonSetSpec: description: DaemonSetSpec is the specification of a daemon set. properties: minReadySeconds: description: The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). format: int32 type: integer revisionHistoryLimit: description: The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template''s node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template' updateStrategy: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy' description: An update strategy to replace existing DaemonSet pods with new pods. required: - selector - template io.k8s.api.apps.v1beta2.DaemonSetStatus: description: DaemonSetStatus represents the current status of a daemon set. properties: collisionCount: description: Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. format: int32 type: integer conditions: description: Represents the latest available observations of a DaemonSet's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DaemonSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge currentNumberScheduled: description: 'The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer desiredNumberScheduled: description: 'The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer numberAvailable: description: The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds) format: int32 type: integer numberMisscheduled: description: 'The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer numberReady: description: The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready. format: int32 type: integer numberUnavailable: description: The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds) format: int32 type: integer observedGeneration: description: The most recent generation observed by the daemon set controller. format: int64 type: integer updatedNumberScheduled: description: The total number of nodes that are running updated daemon pod format: int32 type: integer required: - currentNumberScheduled - numberMisscheduled - desiredNumberScheduled - numberReady io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy: description: DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet' description: Rolling update config params. Present only if type = "RollingUpdate". type: description: Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. type: string io.k8s.api.apps.v1beta2.Deployment: description: DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object metadata. spec: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DeploymentSpec' description: Specification of the desired behavior of the Deployment. status: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DeploymentStatus' description: Most recently observed status of the Deployment. x-kubernetes-group-version-kind: - group: apps kind: Deployment version: v1beta2 io.k8s.api.apps.v1beta2.DeploymentCondition: description: DeploymentCondition describes the state of a deployment at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 deployment condition. type: string required: - type - status io.k8s.api.apps.v1beta2.DeploymentList: description: DeploymentList is a list of Deployments. 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/api-conventions.md#resources' type: string items: description: Items is the list of Deployments. items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.Deployment' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard list metadata. required: - items x-kubernetes-group-version-kind: - group: apps kind: DeploymentList version: v1beta2 io.k8s.api.apps.v1beta2.DeploymentSpec: description: DeploymentSpec is the specification of the desired behavior of the Deployment. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer paused: description: Indicates that the deployment is paused. type: boolean progressDeadlineSeconds: description: The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. format: int32 type: integer replicas: description: Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. format: int32 type: integer revisionHistoryLimit: description: The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels. strategy: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DeploymentStrategy' description: The deployment strategy to use to replace existing pods with new ones. template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: Template describes the pods that will be created. required: - selector - template io.k8s.api.apps.v1beta2.DeploymentStatus: description: DeploymentStatus is the most recently observed status of the Deployment. properties: availableReplicas: description: Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. format: int32 type: integer collisionCount: description: Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet. format: int32 type: integer conditions: description: Represents the latest available observations of a deployment's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.DeploymentCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge observedGeneration: description: The generation observed by the deployment controller. format: int64 type: integer readyReplicas: description: Total number of ready pods targeted by this deployment. format: int32 type: integer replicas: description: Total number of non-terminated pods targeted by this deployment (their labels match the selector). format: int32 type: integer unavailableReplicas: description: Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. format: int32 type: integer updatedReplicas: description: Total number of non-terminated pods targeted by this deployment that have the desired template spec. format: int32 type: integer io.k8s.api.apps.v1beta2.DeploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDeployment' description: Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string io.k8s.api.apps.v1beta2.ReplicaSet: description: DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetSpec' description: 'Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetStatus' description: 'Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: apps kind: ReplicaSet version: v1beta2 io.k8s.api.apps.v1beta2.ReplicaSetCondition: description: ReplicaSetCondition describes the state of a replica set at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: The last time the condition transitioned from one status to another. 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 replica set condition. type: string required: - type - status io.k8s.api.apps.v1beta2.ReplicaSetList: description: ReplicaSetList is a collection of ReplicaSets. 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/api-conventions.md#resources' type: string items: description: 'List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller' items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: apps kind: ReplicaSetList version: v1beta2 io.k8s.api.apps.v1beta2.ReplicaSetSpec: description: ReplicaSetSpec is the specification of a ReplicaSet. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer replicas: description: 'Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller' format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template' required: - selector io.k8s.api.apps.v1beta2.ReplicaSetStatus: description: ReplicaSetStatus represents the current status of a ReplicaSet. properties: availableReplicas: description: The number of available replicas (ready for at least minReadySeconds) for this replica set. format: int32 type: integer conditions: description: Represents the latest available observations of a replica set's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge fullyLabeledReplicas: description: The number of pods that have labels matching the labels of the pod template of the replicaset. format: int32 type: integer observedGeneration: description: ObservedGeneration reflects the generation of the most recently observed ReplicaSet. format: int64 type: integer readyReplicas: description: The number of ready replicas for this replica set. format: int32 type: integer replicas: description: 'Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller' format: int32 type: integer required: - replicas io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet: description: Spec to control the desired behavior of daemon set rolling update. properties: maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.' io.k8s.api.apps.v1beta2.RollingUpdateDeployment: description: Spec to control the desired behavior of rolling update. properties: maxSurge: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.' maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.' io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy: description: RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. properties: partition: description: Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0. format: int32 type: integer io.k8s.api.apps.v1beta2.Scale: description: Scale represents a scaling request for a resource. 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/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/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/api-conventions.md#metadata.' spec: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ScaleSpec' description: 'defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.' status: $ref: '#/definitions/io.k8s.api.apps.v1beta2.ScaleStatus' description: 'current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.' x-kubernetes-group-version-kind: - group: apps kind: Scale version: v1beta2 io.k8s.api.apps.v1beta2.ScaleSpec: description: ScaleSpec describes the attributes of a scale subresource properties: replicas: description: desired number of instances for the scaled object. format: int32 type: integer io.k8s.api.apps.v1beta2.ScaleStatus: description: ScaleStatus represents the current status of a scale subresource. properties: replicas: description: actual number of observed instances of the scaled object. format: int32 type: integer selector: additionalProperties: type: string description: 'label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors' type: object targetSelector: description: 'label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' type: string required: - replicas io.k8s.api.apps.v1beta2.StatefulSet: description: "DEPRECATED - This group version of StatefulSet is deprecated by\ \ apps/v1/StatefulSet. See the release notes for more information. StatefulSet\ \ represents a set of pods with consistent identities. Identities are defined\ \ as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims\ \ as requested.\nThe StatefulSet guarantees that a given network identity will\ \ always map to the same storage identity." 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSetSpec' description: Spec defines the desired identities of pods in this set. status: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSetStatus' description: Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time. x-kubernetes-group-version-kind: - group: apps kind: StatefulSet version: v1beta2 io.k8s.api.apps.v1beta2.StatefulSetCondition: description: StatefulSetCondition describes the state of a statefulset at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 statefulset condition. type: string required: - type - status io.k8s.api.apps.v1beta2.StatefulSetList: description: StatefulSetList is a collection of StatefulSets. 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/api-conventions.md#resources' type: string items: items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSet' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: apps kind: StatefulSetList version: v1beta2 io.k8s.api.apps.v1beta2.StatefulSetSpec: description: A StatefulSetSpec is the specification of a StatefulSet. properties: podManagementPolicy: description: podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once. type: string replicas: description: replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1. format: int32 type: integer revisionHistoryLimit: description: revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'selector is a label query over pods that should match the replica count. It must match the pod template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' serviceName: description: 'serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller.' type: string template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. updateStrategy: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy' description: updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template. volumeClaimTemplates: description: volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name. items: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' type: array required: - selector - template - serviceName io.k8s.api.apps.v1beta2.StatefulSetStatus: description: StatefulSetStatus represents the current state of a StatefulSet. properties: collisionCount: description: collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. format: int32 type: integer conditions: description: Represents the latest available observations of a statefulset's current state. items: $ref: '#/definitions/io.k8s.api.apps.v1beta2.StatefulSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge currentReplicas: description: currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision. format: int32 type: integer currentRevision: description: currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas). type: string observedGeneration: description: observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server. format: int64 type: integer readyReplicas: description: readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. format: int32 type: integer replicas: description: replicas is the number of Pods created by the StatefulSet controller. format: int32 type: integer updateRevision: description: updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas) type: string updatedReplicas: description: updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision. format: int32 type: integer required: - replicas io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy: description: StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy' description: RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. type: description: Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate. type: string io.k8s.api.authentication.v1.TokenReview: description: 'TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.' 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec' description: Spec holds information about the request being evaluated status: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus' description: Status is filled in by the server and indicates whether the request can be authenticated. required: - spec x-kubernetes-group-version-kind: - group: authentication.k8s.io kind: TokenReview version: v1 io.k8s.api.authentication.v1.TokenReviewSpec: description: TokenReviewSpec is a description of the token authentication request. properties: token: description: Token is the opaque bearer token. type: string io.k8s.api.authentication.v1.TokenReviewStatus: description: TokenReviewStatus is the result of the token authentication request. properties: authenticated: description: Authenticated indicates that the token was associated with a known user. type: boolean error: description: Error indicates that the token couldn't be checked type: string user: $ref: '#/definitions/io.k8s.api.authentication.v1.UserInfo' description: User is the UserInfo associated with the provided token. io.k8s.api.authentication.v1.UserInfo: description: UserInfo holds the information about the user needed to implement the user.Info interface. properties: extra: additionalProperties: items: type: string type: array description: Any additional information provided by the authenticator. type: object groups: description: The names of groups this user is a part of. items: type: string type: array 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. type: string username: description: The name that uniquely identifies this user among all active users. type: string io.k8s.api.authentication.v1beta1.TokenReview: description: 'TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.' 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec' description: Spec holds information about the request being evaluated status: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus' description: Status is filled in by the server and indicates whether the request can be authenticated. required: - spec x-kubernetes-group-version-kind: - group: authentication.k8s.io kind: TokenReview version: v1beta1 io.k8s.api.authentication.v1beta1.TokenReviewSpec: description: TokenReviewSpec is a description of the token authentication request. properties: token: description: Token is the opaque bearer token. type: string io.k8s.api.authentication.v1beta1.TokenReviewStatus: description: TokenReviewStatus is the result of the token authentication request. properties: authenticated: description: Authenticated indicates that the token was associated with a known user. type: boolean error: description: Error indicates that the token couldn't be checked type: string user: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.UserInfo' description: User is the UserInfo associated with the provided token. io.k8s.api.authentication.v1beta1.UserInfo: description: UserInfo holds the information about the user needed to implement the user.Info interface. properties: extra: additionalProperties: items: type: string type: array description: Any additional information provided by the authenticator. type: object groups: description: The names of groups this user is a part of. items: type: string type: array 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. type: string username: description: The name that uniquely identifies this user among all active users. type: string io.k8s.api.authorization.v1.LocalSubjectAccessReview: description: LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec' description: Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted. status: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus' description: Status is filled in by the server and indicates whether the request is allowed or not required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: LocalSubjectAccessReview version: v1 io.k8s.api.authorization.v1.NonResourceAttributes: description: NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface properties: path: description: Path is the URL path of the request type: string verb: description: Verb is the standard HTTP verb type: string io.k8s.api.authorization.v1.NonResourceRule: description: NonResourceRule holds information that describes a rule for the non-resource properties: 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. "*" means all. items: type: string type: array 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 required: - verbs io.k8s.api.authorization.v1.ResourceAttributes: description: ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface properties: group: description: Group is the API Group of the Resource. "*" means all. type: string name: description: Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all. type: string namespace: description: Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews "" (empty) is empty for cluster-scoped resources "" (empty) means "all" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview type: string resource: description: Resource is one of the existing resource types. "*" means all. type: string subresource: description: Subresource is one of the existing resource types. "" means none. type: string verb: description: 'Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. "*" means all.' type: string version: description: Version is the API Version of the Resource. "*" means all. type: string io.k8s.api.authorization.v1.ResourceRule: description: ResourceRule 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. properties: apiGroups: description: APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "*" means all. items: type: string type: array 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 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 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 required: - verbs io.k8s.api.authorization.v1.SelfSubjectAccessReview: description: SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means "in all namespaces". Self is a special case, because users should always be able to check whether they can perform an action 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec' description: Spec holds information about the request being evaluated. user and groups must be empty status: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus' description: Status is filled in by the server and indicates whether the request is allowed or not required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: SelfSubjectAccessReview version: v1 io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec: description: SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set properties: nonResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes' description: NonResourceAttributes describes information for a non-resource access request resourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1.ResourceAttributes' description: ResourceAuthorizationAttributes describes information for a resource access request io.k8s.api.authorization.v1.SelfSubjectRulesReview: description: SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec' description: Spec holds information about the request being evaluated. status: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus' description: Status is filled in by the server and indicates the set of actions a user can perform. required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: SelfSubjectRulesReview version: v1 io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec: properties: namespace: description: Namespace to evaluate rules for. Required. type: string io.k8s.api.authorization.v1.SubjectAccessReview: description: SubjectAccessReview checks whether or not a user or group can perform an action. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec' description: Spec holds information about the request being evaluated status: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus' description: Status is filled in by the server and indicates whether the request is allowed or not required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: SubjectAccessReview version: v1 io.k8s.api.authorization.v1.SubjectAccessReviewSpec: description: SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set properties: extra: additionalProperties: items: type: string type: array description: Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here. type: object groups: description: Groups is the groups you're testing for. items: type: string type: array nonResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes' description: NonResourceAttributes describes information for a non-resource access request resourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1.ResourceAttributes' description: ResourceAuthorizationAttributes describes information for a resource access request uid: description: UID information about the requesting user. type: string user: description: User is the user you're testing for. If you specify "User" but not "Groups", then is it interpreted as "What if User were not a member of any groups type: string io.k8s.api.authorization.v1.SubjectAccessReviewStatus: description: SubjectAccessReviewStatus properties: allowed: description: Allowed is required. True if the action would be allowed, false otherwise. type: boolean denied: description: Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true. type: boolean evaluationError: description: EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request. type: string reason: description: Reason is optional. It indicates why a request was allowed or denied. type: string required: - allowed io.k8s.api.authorization.v1.SubjectRulesReviewStatus: description: SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete. properties: evaluationError: description: EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete. type: string incomplete: description: Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation. type: boolean nonResourceRules: description: NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete. items: $ref: '#/definitions/io.k8s.api.authorization.v1.NonResourceRule' type: array 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 required: - resourceRules - nonResourceRules - incomplete io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview: description: LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec' description: Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted. status: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus' description: Status is filled in by the server and indicates whether the request is allowed or not required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: LocalSubjectAccessReview version: v1beta1 io.k8s.api.authorization.v1beta1.NonResourceAttributes: description: NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface properties: path: description: Path is the URL path of the request type: string verb: description: Verb is the standard HTTP verb type: string io.k8s.api.authorization.v1beta1.NonResourceRule: description: NonResourceRule holds information that describes a rule for the non-resource properties: 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. "*" means all. items: type: string type: array 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 required: - verbs io.k8s.api.authorization.v1beta1.ResourceAttributes: description: ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface properties: group: description: Group is the API Group of the Resource. "*" means all. type: string name: description: Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all. type: string namespace: description: Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews "" (empty) is empty for cluster-scoped resources "" (empty) means "all" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview type: string resource: description: Resource is one of the existing resource types. "*" means all. type: string subresource: description: Subresource is one of the existing resource types. "" means none. type: string verb: description: 'Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. "*" means all.' type: string version: description: Version is the API Version of the Resource. "*" means all. type: string io.k8s.api.authorization.v1beta1.ResourceRule: description: ResourceRule 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. properties: apiGroups: description: APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "*" means all. items: type: string type: array 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 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 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 required: - verbs io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview: description: SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means "in all namespaces". Self is a special case, because users should always be able to check whether they can perform an action 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec' description: Spec holds information about the request being evaluated. user and groups must be empty status: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus' description: Status is filled in by the server and indicates whether the request is allowed or not required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: SelfSubjectAccessReview version: v1beta1 io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec: description: SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set properties: nonResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes' description: NonResourceAttributes describes information for a non-resource access request resourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes' description: ResourceAuthorizationAttributes describes information for a resource access request io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview: description: SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec' description: Spec holds information about the request being evaluated. status: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus' description: Status is filled in by the server and indicates the set of actions a user can perform. required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: SelfSubjectRulesReview version: v1beta1 io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec: properties: namespace: description: Namespace to evaluate rules for. Required. type: string io.k8s.api.authorization.v1beta1.SubjectAccessReview: description: SubjectAccessReview checks whether or not a user or group can perform an action. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec' description: Spec holds information about the request being evaluated status: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus' description: Status is filled in by the server and indicates whether the request is allowed or not required: - spec x-kubernetes-group-version-kind: - group: authorization.k8s.io kind: SubjectAccessReview version: v1beta1 io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec: description: SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set properties: extra: additionalProperties: items: type: string type: array description: Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here. type: object group: description: Groups is the groups you're testing for. items: type: string type: array nonResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes' description: NonResourceAttributes describes information for a non-resource access request resourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes' description: ResourceAuthorizationAttributes describes information for a resource access request uid: description: UID information about the requesting user. type: string user: description: User is the user you're testing for. If you specify "User" but not "Group", then is it interpreted as "What if User were not a member of any groups type: string io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus: description: SubjectAccessReviewStatus properties: allowed: description: Allowed is required. True if the action would be allowed, false otherwise. type: boolean denied: description: Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true. type: boolean evaluationError: description: EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request. type: string reason: description: Reason is optional. It indicates why a request was allowed or denied. type: string required: - allowed io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus: description: SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete. properties: evaluationError: description: EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete. type: string incomplete: description: Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation. type: boolean nonResourceRules: description: NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete. items: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule' type: array 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.v1beta1.ResourceRule' type: array required: - resourceRules - nonResourceRules - incomplete io.k8s.api.autoscaling.v1.CrossVersionObjectReference: description: CrossVersionObjectReference contains enough information to let you identify the referred resource. properties: apiVersion: description: API version of the referent type: string kind: description: 'Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"' type: string name: description: 'Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string required: - kind - name io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler: description: configuration of a horizontal pod autoscaler. 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/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/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/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec' description: 'behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.' status: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus' description: current information about the autoscaler. x-kubernetes-group-version-kind: - group: autoscaling kind: HorizontalPodAutoscaler version: v1 io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList: description: list of horizontal pod autoscaler objects. 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/api-conventions.md#resources' type: string items: description: list of horizontal pod autoscaler objects. items: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard list metadata. required: - items x-kubernetes-group-version-kind: - group: autoscaling kind: HorizontalPodAutoscalerList version: v1 io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec: description: specification of a horizontal pod autoscaler. properties: maxReplicas: description: upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. format: int32 type: integer minReplicas: description: lower limit for the number of pods that can be set by the autoscaler, default 1. format: int32 type: integer scaleTargetRef: $ref: '#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference' description: reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource. targetCPUUtilizationPercentage: description: target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used. format: int32 type: integer required: - scaleTargetRef - maxReplicas io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus: description: current status of a horizontal pod autoscaler properties: currentCPUUtilizationPercentage: description: current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU. format: int32 type: integer currentReplicas: description: current number of replicas of pods managed by this autoscaler. format: int32 type: integer desiredReplicas: description: desired number of replicas of pods managed by this autoscaler. format: int32 type: integer lastScaleTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed. observedGeneration: description: most recent generation observed by this autoscaler. format: int64 type: integer required: - currentReplicas - desiredReplicas io.k8s.api.autoscaling.v1.Scale: description: Scale represents a scaling request for a resource. 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/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/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/api-conventions.md#metadata.' spec: $ref: '#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec' description: 'defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.' status: $ref: '#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus' description: 'current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.' x-kubernetes-group-version-kind: - group: autoscaling kind: Scale version: v1 io.k8s.api.autoscaling.v1.ScaleSpec: description: ScaleSpec describes the attributes of a scale subresource. properties: replicas: description: desired number of instances for the scaled object. format: int32 type: integer io.k8s.api.autoscaling.v1.ScaleStatus: description: ScaleStatus represents the current status of a scale subresource. properties: replicas: description: actual number of observed instances of the scaled object. format: int32 type: integer selector: description: 'label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' type: string required: - replicas io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference: description: CrossVersionObjectReference contains enough information to let you identify the referred resource. properties: apiVersion: description: API version of the referent type: string kind: description: 'Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"' type: string name: description: 'Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string required: - kind - name io.k8s.api.autoscaling.v2beta1.ExternalMetricSource: description: ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one "target" type should be set. properties: metricName: description: metricName is the name of the metric in question. type: string metricSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: metricSelector is used to identify a specific time series within a given metric. targetAverageValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue. targetValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue. required: - metricName io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus: description: ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object. properties: currentAverageValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: currentAverageValue is the current value of metric averaged over autoscaled pods. currentValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: currentValue is the current value of the metric (as a quantity) metricName: description: metricName is the name of a metric used for autoscaling in metric system. type: string metricSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: metricSelector is used to identify a specific time series within a given metric. required: - metricName - currentValue io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler: description: HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec' description: 'spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.' status: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus' description: status is the current information about the autoscaler. x-kubernetes-group-version-kind: - group: autoscaling kind: HorizontalPodAutoscaler version: v2beta1 io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition: description: HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: lastTransitionTime is the last time the condition transitioned from one status to another message: description: message is a human-readable explanation containing details about the transition type: string reason: description: reason is the reason for the condition's last transition. type: string status: description: status is the status of the condition (True, False, Unknown) type: string type: description: type describes the current condition type: string required: - type - status io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList: description: HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects. 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/api-conventions.md#resources' type: string items: description: items is the list of horizontal pod autoscaler objects. items: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: metadata is the standard list metadata. required: - items x-kubernetes-group-version-kind: - group: autoscaling kind: HorizontalPodAutoscalerList version: v2beta1 io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec: description: HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler. properties: maxReplicas: description: maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas. format: int32 type: integer metrics: description: metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. items: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec' type: array minReplicas: description: minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. format: int32 type: integer scaleTargetRef: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference' description: scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count. required: - scaleTargetRef - maxReplicas io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus: description: HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler. properties: conditions: description: conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met. items: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition' type: array currentMetrics: description: currentMetrics is the last read state of the metrics used by this autoscaler. items: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus' type: array currentReplicas: description: currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler. format: int32 type: integer desiredReplicas: description: desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler. format: int32 type: integer lastScaleTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed. observedGeneration: description: observedGeneration is the most recent generation observed by this autoscaler. format: int64 type: integer required: - currentReplicas - desiredReplicas - currentMetrics - conditions io.k8s.api.autoscaling.v2beta1.MetricSpec: description: MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once). properties: external: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource' description: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). object: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource' description: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). pods: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource' description: pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. resource: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource' description: resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. type: description: type is the type of metric source. It should be one of "Object", "Pods" or "Resource", each mapping to a matching field in the object. type: string required: - type io.k8s.api.autoscaling.v2beta1.MetricStatus: description: MetricStatus describes the last-read state of a single metric. properties: external: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus' description: external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). object: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus' description: object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object). pods: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus' description: pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. resource: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus' description: resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. type: description: type is the type of metric source. It will be one of "Object", "Pods" or "Resource", each corresponds to a matching field in the object. type: string required: - type io.k8s.api.autoscaling.v2beta1.ObjectMetricSource: description: ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object). properties: metricName: description: metricName is the name of the metric in question. type: string target: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference' description: target is the described Kubernetes object. targetValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: targetValue is the target value of the metric (as a quantity). required: - target - metricName - targetValue io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus: description: ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object). properties: currentValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: currentValue is the current value of the metric (as a quantity). metricName: description: metricName is the name of the metric in question. type: string target: $ref: '#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference' description: target is the described Kubernetes object. required: - target - metricName - currentValue io.k8s.api.autoscaling.v2beta1.PodsMetricSource: description: PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value. properties: metricName: description: metricName is the name of the metric in question type: string targetAverageValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity) required: - metricName - targetAverageValue io.k8s.api.autoscaling.v2beta1.PodsMetricStatus: description: PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second). properties: currentAverageValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity) metricName: description: metricName is the name of the metric in question type: string required: - metricName - currentAverageValue io.k8s.api.autoscaling.v2beta1.ResourceMetricSource: description: ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set. properties: name: description: name is the name of the resource in question. type: string targetAverageUtilization: description: targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. format: int32 type: integer targetAverageValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. required: - name io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus: description: ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. properties: currentAverageUtilization: description: currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification. format: int32 type: integer currentAverageValue: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. It will always be set, regardless of the corresponding metric specification. name: description: name is the name of the resource in question. type: string required: - name - currentAverageValue io.k8s.api.batch.v1.Job: description: Job represents the configuration of a single job. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.batch.v1.JobSpec' description: 'Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.batch.v1.JobStatus' description: 'Current status of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: batch kind: Job version: v1 io.k8s.api.batch.v1.JobCondition: description: JobCondition describes current state of a job. properties: lastProbeTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition was checked. lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transit from one status to another. message: description: Human readable message indicating details about last transition. type: string reason: description: (brief) 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 job condition, Complete or Failed. type: string required: - type - status io.k8s.api.batch.v1.JobList: description: JobList is a collection of jobs. 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/api-conventions.md#resources' type: string items: description: items is the list of Jobs. items: $ref: '#/definitions/io.k8s.api.batch.v1.Job' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: batch kind: JobList version: v1 io.k8s.api.batch.v1.JobSpec: description: JobSpec describes how the job execution will look like. properties: activeDeadlineSeconds: description: Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer format: int64 type: integer backoffLimit: description: Specifies the number of retries before marking this job failed. Defaults to 6 format: int32 type: integer completions: description: 'Specifies the desired number of successfully finished pods the job should be run with. Setting to nil 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/' format: int32 type: integer 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 parallelism: description: '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/' format: int32 type: integer selector: $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' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' required: - template io.k8s.api.batch.v1.JobStatus: description: JobStatus represents the current state of a Job. properties: active: description: The number of actively running pods. format: int32 type: integer 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. conditions: description: 'The latest available observations of an object''s current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/' items: $ref: '#/definitions/io.k8s.api.batch.v1.JobCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge failed: description: The number of pods which reached phase Failed. format: int32 type: integer startTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. succeeded: description: The number of pods which reached phase Succeeded. format: int32 type: integer io.k8s.api.batch.v1beta1.CronJob: description: CronJob represents the configuration of a single cron job. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec' description: 'Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus' description: 'Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: batch kind: CronJob version: v1beta1 io.k8s.api.batch.v1beta1.CronJobList: description: CronJobList is a collection of cron jobs. 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/api-conventions.md#resources' type: string items: description: items is the list of CronJobs. items: $ref: '#/definitions/io.k8s.api.batch.v1beta1.CronJob' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: batch kind: CronJobList version: v1beta1 io.k8s.api.batch.v1beta1.CronJobSpec: description: CronJobSpec describes how the job execution will look like and when it will actually run. properties: concurrencyPolicy: description: 'Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn''t finished yet; - "Replace": cancels currently running job and replaces it with a new one' type: string failedJobsHistoryLimit: description: The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. format: int32 type: integer jobTemplate: $ref: '#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec' description: Specifies the job that will be created when executing a CronJob. schedule: description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: description: Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones. format: int64 type: integer successfulJobsHistoryLimit: description: The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3. format: int32 type: integer suspend: description: This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. type: boolean required: - schedule - jobTemplate io.k8s.api.batch.v1beta1.CronJobStatus: description: CronJobStatus represents the current state of a cron job. properties: active: description: A list of pointers to currently running jobs. items: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' type: array lastScheduleTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Information when was the last time the job was successfully scheduled. io.k8s.api.batch.v1beta1.JobTemplateSpec: description: JobTemplateSpec describes the data a Job should have when created from a template properties: metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.batch.v1.JobSpec' description: 'Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' io.k8s.api.batch.v2alpha1.CronJob: description: CronJob represents the configuration of a single cron job. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJobSpec' description: 'Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJobStatus' description: 'Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: batch kind: CronJob version: v2alpha1 io.k8s.api.batch.v2alpha1.CronJobList: description: CronJobList is a collection of cron jobs. 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/api-conventions.md#resources' type: string items: description: items is the list of CronJobs. items: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: batch kind: CronJobList version: v2alpha1 io.k8s.api.batch.v2alpha1.CronJobSpec: description: CronJobSpec describes how the job execution will look like and when it will actually run. properties: concurrencyPolicy: description: 'Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn''t finished yet; - "Replace": cancels currently running job and replaces it with a new one' type: string failedJobsHistoryLimit: description: The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer jobTemplate: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.JobTemplateSpec' description: Specifies the job that will be created when executing a CronJob. schedule: description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. type: string startingDeadlineSeconds: description: Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones. format: int64 type: integer successfulJobsHistoryLimit: description: The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer suspend: description: This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. type: boolean required: - schedule - jobTemplate io.k8s.api.batch.v2alpha1.CronJobStatus: description: CronJobStatus represents the current state of a cron job. properties: active: description: A list of pointers to currently running jobs. items: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' type: array lastScheduleTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Information when was the last time the job was successfully scheduled. io.k8s.api.batch.v2alpha1.JobTemplateSpec: description: JobTemplateSpec describes the data a Job should have when created from a template properties: metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.batch.v1.JobSpec' description: 'Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' io.k8s.api.certificates.v1beta1.CertificateSigningRequest: description: Describes a certificate signing request 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec' description: The certificate request itself and any additional information. status: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus' description: Derived information about the request. x-kubernetes-group-version-kind: - group: certificates.k8s.io kind: CertificateSigningRequest version: v1beta1 io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition: properties: lastUpdateTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: timestamp for the last update to this condition message: description: human readable message with details about the request state type: string reason: description: brief reason for the request state type: string type: description: request approval state, currently Approved or Denied. type: string required: - type io.k8s.api.certificates.v1beta1.CertificateSigningRequestList: 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/api-conventions.md#resources' type: string items: items: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: certificates.k8s.io kind: CertificateSigningRequestList version: v1beta1 io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec: description: This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users. properties: extra: additionalProperties: items: type: string type: array description: Extra information about the requesting user. See user.Info interface for details. type: object groups: description: Group information about the requesting user. See user.Info interface for details. items: type: string type: array request: description: Base64-encoded PKCS#10 CSR data format: byte type: string uid: description: UID information about the requesting user. See user.Info interface for details. type: string usages: description: "allowedUsages specifies a set of usage contexts the key will\ \ be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n\ \ https://tools.ietf.org/html/rfc5280#section-4.2.1.12" items: type: string type: array username: description: Information about the requesting user. See user.Info interface for details. type: string required: - request io.k8s.kubernetes.pkg.apis.extensions.v1beta1.APIVersion: description: An APIVersion represents a single concrete version of an object model. properties: name: description: Name of this version (e.g. 'v1'). type: string io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus: properties: certificate: description: If request was approved, the controller will place the issued certificate here. format: byte type: string conditions: description: Conditions applied to the request, such as approval or denial. items: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition' type: array io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource: description: 'Represents a Persistent Disk resource in AWS. An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.' properties: fsType: description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string partition: description: 'The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).' format: int32 type: integer readOnly: description: 'Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: boolean volumeID: description: 'Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' type: string required: - volumeID io.k8s.api.core.v1.Affinity: description: Affinity is a group of affinity scheduling rules. properties: nodeAffinity: $ref: '#/definitions/io.k8s.api.core.v1.NodeAffinity' description: Describes node affinity scheduling rules for the pod. podAffinity: $ref: '#/definitions/io.k8s.api.core.v1.PodAffinity' description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). podAntiAffinity: $ref: '#/definitions/io.k8s.api.core.v1.PodAntiAffinity' description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). io.k8s.api.core.v1.AttachedVolume: description: AttachedVolume describes a volume attached to a node properties: devicePath: description: DevicePath represents the device path where the volume should be available type: string name: description: Name of the attached volume type: string required: - name - devicePath io.k8s.api.core.v1.AzureDiskVolumeSource: description: AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. properties: cachingMode: description: 'Host Caching mode: None, Read Only, Read Write.' type: string diskName: description: The Name of the data disk in the blob storage type: string diskURI: description: The URI the data disk in the blob storage type: string fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string kind: description: 'Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean required: - diskName - diskURI io.k8s.api.core.v1.AzureFilePersistentVolumeSource: description: AzureFile represents an Azure File Service mount on the host and bind mount to the pod. properties: readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretName: description: the name of secret that contains Azure Storage Account Name and Key type: string secretNamespace: description: the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod type: string shareName: description: Share Name type: string required: - secretName - shareName io.k8s.api.core.v1.AzureFileVolumeSource: description: AzureFile represents an Azure File Service mount on the host and bind mount to the pod. properties: readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretName: description: the name of secret that contains Azure Storage Account Name and Key type: string shareName: description: Share Name type: string required: - secretName - shareName io.k8s.api.core.v1.Binding: description: Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' target: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: The target object that you want to bind to the standard object. required: - target x-kubernetes-group-version-kind: - group: '' kind: Binding version: v1 io.k8s.api.core.v1.CSIPersistentVolumeSource: description: Represents storage that is managed by an external CSI volume driver (Beta feature) properties: controllerPublishSecretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: ControllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. driver: description: Driver is the name of the driver to use for this volume. Required. type: string fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". type: string nodePublishSecretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. nodeStageSecretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: NodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed. readOnly: description: 'Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).' type: boolean volumeAttributes: additionalProperties: type: string description: Attributes of the volume to publish. type: object volumeHandle: description: "VolumeHandle is the unique volume name returned by the CSI volume\ \ plugin\u2019s CreateVolume to refer to the volume on all subsequent calls.\ \ Required." type: string required: - driver - volumeHandle io.k8s.api.core.v1.Capabilities: description: Adds and removes POSIX capabilities from running containers. properties: add: description: Added capabilities items: type: string type: array drop: description: Removed capabilities items: type: string type: array io.k8s.api.core.v1.CephFSPersistentVolumeSource: description: Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling. properties: monitors: description: 'Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array path: description: 'Optional: Used as the mounted root, rather than the full Ceph tree, default is /' type: string readOnly: description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: description: 'Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: 'Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' user: description: 'Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors io.k8s.api.core.v1.CephFSVolumeSource: description: Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling. properties: monitors: description: 'Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' items: type: string type: array path: description: 'Optional: Used as the mounted root, rather than the full Ceph tree, default is /' type: string readOnly: description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' type: boolean secretFile: description: 'Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' type: string secretRef: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: 'Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' user: description: 'Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it' type: string required: - monitors io.k8s.api.core.v1.CinderPersistentVolumeSource: description: Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling. properties: fsType: description: 'Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' type: string readOnly: description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: 'Optional: points to a secret object containing parameters used to connect to OpenStack.' volumeID: description: 'volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' type: string required: - volumeID io.k8s.api.core.v1.CinderVolumeSource: description: Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling. properties: fsType: description: 'Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' type: string readOnly: description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: 'Optional: points to a secret object containing parameters used to connect to OpenStack.' volumeID: description: 'volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' type: string required: - volumeID io.k8s.api.core.v1.ClientIPConfig: description: ClientIPConfig represents the configurations of Client IP based session affinity. properties: timeoutSeconds: description: timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP". Default value is 10800(for 3 hours). format: int32 type: integer io.k8s.api.core.v1.ComponentCondition: description: Information about the condition of a component. properties: error: description: Condition error code for a component. For example, a health check error code. type: string message: description: Message about the condition for a component. For example, information about a health check. type: string status: description: 'Status of the condition for a component. Valid values for "Healthy": "True", "False", or "Unknown".' type: string type: description: 'Type of condition for a component. Valid value: "Healthy"' type: string required: - type - status io.k8s.api.core.v1.ComponentStatus: description: ComponentStatus (and ComponentStatusList) holds the cluster validation info. 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/api-conventions.md#resources' type: string conditions: description: List of component conditions observed items: $ref: '#/definitions/io.k8s.api.core.v1.ComponentCondition' type: array 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' x-kubernetes-group-version-kind: - group: '' kind: ComponentStatus version: v1 io.k8s.api.core.v1.ComponentStatusList: description: Status of all the conditions for the component as a list of ComponentStatus objects. 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/api-conventions.md#resources' type: string items: description: List of ComponentStatus objects. items: $ref: '#/definitions/io.k8s.api.core.v1.ComponentStatus' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: ComponentStatusList version: v1 io.k8s.api.core.v1.ConfigMap: description: ConfigMap holds configuration data for pods to consume. 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/api-conventions.md#resources' type: string binaryData: additionalProperties: format: byte type: string description: BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet. type: object data: additionalProperties: type: string description: Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process. type: object 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' x-kubernetes-group-version-kind: - group: '' kind: ConfigMap version: v1 io.k8s.api.core.v1.ConfigMapEnvSource: description: 'ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The 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' type: string optional: description: Specify whether the ConfigMap must be defined type: boolean io.k8s.api.core.v1.ConfigMapKeySelector: description: Selects a key from a ConfigMap. properties: key: description: The key to select. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string optional: description: Specify whether the ConfigMap or it's key must be defined type: boolean required: - key io.k8s.api.core.v1.ConfigMapList: description: ConfigMapList is a resource containing a list of ConfigMap objects. 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/api-conventions.md#resources' type: string items: description: Items is the list of ConfigMaps. items: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: 'More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: '' kind: ConfigMapList version: v1 io.k8s.api.core.v1.ConfigMapNodeConfigSource: description: ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. properties: kubeletConfigKey: description: KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases. type: string name: description: Name is the metadata.name of the referenced ConfigMap. This field is required in all cases. type: string namespace: description: Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases. type: string resourceVersion: description: ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status. type: string uid: description: UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status. type: string required: - namespace - name - kubeletConfigKey io.k8s.api.core.v1.ConfigMapProjection: description: 'Adapts a ConfigMap into a projected volume. The contents of the target ConfigMap''s Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.' properties: items: description: 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 '..'. items: $ref: '#/definitions/io.k8s.api.core.v1.KeyToPath' type: array name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string optional: description: Specify whether the ConfigMap or it's keys must be defined type: boolean io.k8s.api.core.v1.ConfigMapVolumeSource: description: 'Adapts a ConfigMap into a volume. The contents of the target ConfigMap''s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.' properties: defaultMode: description: 'Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.' format: int32 type: integer items: description: 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 '..'. items: $ref: '#/definitions/io.k8s.api.core.v1.KeyToPath' type: array name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string optional: description: Specify whether the ConfigMap or it's keys must be defined type: boolean io.k8s.api.core.v1.Container: description: A single application container that you want to run within a pod. properties: args: description: 'Arguments to the entrypoint. The docker image''s CMD 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. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(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 command: description: 'Entrypoint array. Not executed within a shell. The docker 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. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(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 env: description: List of environment variables to set in the container. Cannot be updated. items: $ref: '#/definitions/io.k8s.api.core.v1.EnvVar' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge envFrom: description: List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. items: $ref: '#/definitions/io.k8s.api.core.v1.EnvFromSource' type: array image: description: 'Docker 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.' type: string imagePullPolicy: description: 'Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' type: string lifecycle: $ref: '#/definitions/io.k8s.api.core.v1.Lifecycle' description: Actions that the management system should take in response to container lifecycle events. Cannot be updated. livenessProbe: $ref: '#/definitions/io.k8s.api.core.v1.Probe' description: 'Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' name: description: Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated. type: string ports: description: List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Cannot be updated. items: $ref: '#/definitions/io.k8s.api.core.v1.ContainerPort' type: array x-kubernetes-patch-merge-key: containerPort x-kubernetes-patch-strategy: merge readinessProbe: $ref: '#/definitions/io.k8s.api.core.v1.Probe' description: 'Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' resources: $ref: '#/definitions/io.k8s.api.core.v1.ResourceRequirements' description: 'Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' securityContext: $ref: '#/definitions/io.k8s.api.core.v1.SecurityContext' description: 'Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' stdin: description: Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false. type: boolean stdinOnce: description: Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false type: boolean terminationMessagePath: description: 'Optional: Path at which the file to which the container''s termination message will be written is mounted into the container''s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.' type: string terminationMessagePolicy: description: Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated. type: string tty: description: Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false. type: boolean volumeDevices: description: volumeDevices is the list of block devices to be used by the container. This is an alpha feature and may change in the future. items: $ref: '#/definitions/io.k8s.api.core.v1.VolumeDevice' type: array x-kubernetes-patch-merge-key: devicePath x-kubernetes-patch-strategy: merge volumeMounts: description: Pod volumes to mount into the container's filesystem. Cannot be updated. items: $ref: '#/definitions/io.k8s.api.core.v1.VolumeMount' type: array x-kubernetes-patch-merge-key: mountPath x-kubernetes-patch-strategy: merge workingDir: description: Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated. type: string required: - name io.k8s.api.core.v1.ContainerImage: description: Describe a container image properties: names: description: Names by which this image is known. e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"] items: type: string type: array sizeBytes: description: The size of the image in bytes. format: int64 type: integer required: - names io.k8s.api.core.v1.ContainerPort: description: ContainerPort represents a network port in a single container. properties: containerPort: description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. format: int32 type: integer hostIP: description: What host IP to bind the external port to. type: string hostPort: description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. format: int32 type: integer name: description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. type: string protocol: description: Protocol for port. Must be UDP or TCP. Defaults to "TCP". type: string required: - containerPort io.k8s.api.core.v1.ContainerState: description: ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting. properties: running: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStateRunning' description: Details about a running container terminated: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStateTerminated' description: Details about a terminated container waiting: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStateWaiting' description: Details about a waiting container io.k8s.api.core.v1.ContainerStateRunning: description: ContainerStateRunning is a running state of a container. properties: startedAt: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Time at which the container was last (re-)started io.k8s.api.core.v1.ContainerStateTerminated: description: ContainerStateTerminated is a terminated state of a container. properties: containerID: description: Container's ID in the format 'docker://' type: string exitCode: description: Exit status from the last termination of the container format: int32 type: integer finishedAt: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Time at which the container last terminated message: description: Message regarding the last termination of the container type: string reason: description: (brief) reason from the last termination of the container type: string signal: description: Signal from the last termination of the container format: int32 type: integer startedAt: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Time at which previous execution of the container started required: - exitCode io.k8s.api.core.v1.ContainerStateWaiting: description: ContainerStateWaiting is a waiting state of a container. properties: message: description: Message regarding why the container is not yet running. type: string reason: description: (brief) reason the container is not yet running. type: string io.k8s.api.core.v1.ContainerStatus: description: ContainerStatus contains details for the current status of this container. properties: containerID: description: Container's ID in the format 'docker://'. type: string image: description: 'The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images' type: string imageID: description: ImageID of the container's image. type: string lastState: $ref: '#/definitions/io.k8s.api.core.v1.ContainerState' description: Details about the container's last termination condition. name: description: This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated. type: string ready: description: Specifies whether the container has passed its readiness probe. type: boolean restartCount: description: The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC. format: int32 type: integer state: $ref: '#/definitions/io.k8s.api.core.v1.ContainerState' description: Details about the container's current condition. required: - name - ready - restartCount - image - imageID io.k8s.api.core.v1.DaemonEndpoint: description: DaemonEndpoint contains information about a single Daemon endpoint. properties: Port: description: Port number of the given endpoint. format: int32 type: integer required: - Port io.k8s.api.core.v1.DownwardAPIProjection: description: Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode. properties: items: description: Items is a list of DownwardAPIVolume file items: $ref: '#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile' type: array io.k8s.api.core.v1.DownwardAPIVolumeFile: description: DownwardAPIVolumeFile represents information to create the file containing the pod field 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.' mode: description: 'Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.' format: int32 type: integer path: description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..''' type: string resourceFieldRef: $ref: '#/definitions/io.k8s.api.core.v1.ResourceFieldSelector' description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.' required: - path io.k8s.api.core.v1.DownwardAPIVolumeSource: description: DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling. properties: defaultMode: description: 'Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.' format: int32 type: integer items: description: Items is a list of downward API volume file items: $ref: '#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile' type: array io.k8s.api.core.v1.EmptyDirVolumeSource: description: Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling. properties: medium: description: 'What type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' type: string sizeLimit: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: 'Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir' io.k8s.api.core.v1.EndpointAddress: description: EndpointAddress is a tuple that describes single IP address. properties: hostname: description: The Hostname of this endpoint type: string ip: description: The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready. type: string nodeName: description: 'Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.' type: string targetRef: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: Reference to object providing the endpoint. required: - ip io.k8s.api.core.v1.EndpointPort: description: EndpointPort is a tuple that describes a single port. properties: name: description: The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined. type: string port: description: The port number of the endpoint. format: int32 type: integer protocol: description: The IP protocol for this port. Must be UDP or TCP. Default is TCP. type: string required: - port io.k8s.api.core.v1.EndpointSubset: description: "EndpointSubset is a group of addresses with a common set of ports.\ \ The expanded set of endpoints is the Cartesian product of Addresses x Ports.\ \ For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\"\ : \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\"\ : \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed\ \ as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309\ \ ]" properties: addresses: description: IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize. items: $ref: '#/definitions/io.k8s.api.core.v1.EndpointAddress' type: array 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 ports: description: Port numbers available on the related IP addresses. items: $ref: '#/definitions/io.k8s.api.core.v1.EndpointPort' type: array io.k8s.api.core.v1.Endpoints: description: "Endpoints is a collection of endpoints that implement the actual\ \ service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses:\ \ [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\"\ : \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n\ \ Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\"\ , \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]" 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' subsets: description: The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service. items: $ref: '#/definitions/io.k8s.api.core.v1.EndpointSubset' type: array x-kubernetes-group-version-kind: - group: '' kind: Endpoints version: v1 io.k8s.api.core.v1.EndpointsList: description: EndpointsList is a list of endpoints. 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/api-conventions.md#resources' type: string items: description: List of endpoints. items: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: EndpointsList version: v1 io.k8s.api.core.v1.EnvFromSource: description: EnvFromSource represents the source of a set of ConfigMaps properties: configMapRef: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource' description: The ConfigMap to select from prefix: description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. type: string secretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretEnvSource' description: The Secret to select from io.k8s.api.core.v1.EnvVar: description: EnvVar represents an environment variable present in a Container. properties: name: description: Name of the environment variable. Must be a C_IDENTIFIER. type: string value: description: 'Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' type: string valueFrom: $ref: '#/definitions/io.k8s.api.core.v1.EnvVarSource' description: Source for the environment variable's value. Cannot be used if value is not empty. required: - name io.k8s.api.core.v1.EnvVarSource: description: EnvVarSource represents a source for the value of an EnvVar. properties: configMapKeyRef: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector' description: Selects a key of a ConfigMap. fieldRef: $ref: '#/definitions/io.k8s.api.core.v1.ObjectFieldSelector' description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.' resourceFieldRef: $ref: '#/definitions/io.k8s.api.core.v1.ResourceFieldSelector' description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' secretKeyRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretKeySelector' description: Selects a key of a secret in the pod's namespace io.k8s.api.core.v1.Event: description: Event is a report of an event somewhere in the cluster. properties: action: description: What action was taken/failed regarding to the Regarding object. type: string 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/api-conventions.md#resources' type: string count: description: The number of times this event has occurred. format: int32 type: integer eventTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime' description: Time when this Event was first observed. firstTimestamp: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: The time at which the event was first recorded. (Time of server receipt is in TypeMeta.) involvedObject: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: The object that this event is about. 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/api-conventions.md#types-kinds' type: string lastTimestamp: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: The time at which the most recent occurrence of this event was recorded. message: description: A human-readable description of the status of this operation. type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' reason: description: This should be a short, machine understandable string that gives the reason for the transition into the object's current status. type: string related: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: Optional secondary object for more complex actions. reportingComponent: description: Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. type: string reportingInstance: description: ID of the controller instance, e.g. `kubelet-xyzf`. type: string series: $ref: '#/definitions/io.k8s.api.core.v1.EventSeries' description: Data about the Event series this event represents or nil if it's a singleton Event. source: $ref: '#/definitions/io.k8s.api.core.v1.EventSource' description: The component reporting this event. Should be a short machine understandable string. type: description: Type of this event (Normal, Warning), new types could be added in the future type: string required: - metadata - involvedObject x-kubernetes-group-version-kind: - group: '' kind: Event version: v1 io.k8s.api.core.v1.EventList: description: EventList is a list of events. 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/api-conventions.md#resources' type: string items: description: List of events items: $ref: '#/definitions/io.k8s.api.core.v1.Event' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: EventList version: v1 io.k8s.api.core.v1.EventSeries: description: EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. properties: count: description: Number of occurrences in this series up to the last heartbeat time format: int32 type: integer lastObservedTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime' description: Time of the last occurrence observed state: description: 'State of this Series: Ongoing or Finished' type: string io.k8s.api.core.v1.EventSource: description: EventSource contains information for an event. properties: component: description: Component from which the event is generated. type: string host: description: Node name on which the event is generated. type: string io.k8s.api.core.v1.ExecAction: description: ExecAction describes a "run in container" action. properties: command: description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. items: type: string type: array io.k8s.api.core.v1.FCVolumeSource: description: Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling. properties: fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string lun: description: 'Optional: FC target lun number' format: int32 type: integer readOnly: description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' type: boolean targetWWNs: description: 'Optional: FC target worldwide names (WWNs)' items: type: string type: array wwids: description: '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 io.k8s.api.core.v1.FlexPersistentVolumeSource: description: FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin. properties: driver: description: Driver is the name of the driver to use for this volume. type: string fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. type: string options: additionalProperties: type: string description: 'Optional: Extra command options if any.' type: object readOnly: description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: 'Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.' required: - driver io.k8s.api.core.v1.FlexVolumeSource: description: FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. properties: driver: description: Driver is the name of the driver to use for this volume. type: string fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. type: string options: additionalProperties: type: string description: 'Optional: Extra command options if any.' type: object readOnly: description: 'Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: 'Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.' required: - driver io.k8s.api.core.v1.FlockerVolumeSource: description: Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling. properties: datasetName: description: Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated type: string datasetUUID: description: UUID of the dataset. This is unique identifier of a Flocker dataset type: string io.k8s.api.core.v1.GCEPersistentDiskVolumeSource: description: 'Represents a Persistent Disk resource in Google Compute Engine. A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.' properties: fsType: description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string partition: description: 'The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' format: int32 type: integer pdName: description: 'Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: string readOnly: description: 'ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' type: boolean required: - pdName io.k8s.api.core.v1.GitRepoVolumeSource: description: 'Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.' properties: directory: description: Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. type: string repository: description: Repository URL type: string revision: description: Commit hash for the specified revision. type: string required: - repository io.k8s.api.core.v1.GlusterfsVolumeSource: description: Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. properties: endpoints: description: 'EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod' type: string path: description: 'Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod' type: string readOnly: description: 'ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod' type: boolean required: - endpoints - path io.k8s.api.core.v1.HTTPGetAction: description: HTTPGetAction describes an action based on HTTP Get requests. properties: host: description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. type: string httpHeaders: description: Custom headers to set in the request. HTTP allows repeated headers. items: $ref: '#/definitions/io.k8s.api.core.v1.HTTPHeader' type: array path: description: Path to access on the HTTP server. type: string port: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. scheme: description: Scheme to use for connecting to the host. Defaults to HTTP. type: string required: - port io.k8s.api.core.v1.HTTPHeader: description: HTTPHeader describes a custom header to be used in HTTP probes properties: name: description: The header field name type: string value: description: The header field value type: string required: - name - value io.k8s.api.core.v1.Handler: description: Handler defines a specific action that should be taken properties: exec: $ref: '#/definitions/io.k8s.api.core.v1.ExecAction' description: One and only one of the following should be specified. Exec specifies the action to take. httpGet: $ref: '#/definitions/io.k8s.api.core.v1.HTTPGetAction' description: HTTPGet specifies the http request to perform. tcpSocket: $ref: '#/definitions/io.k8s.api.core.v1.TCPSocketAction' description: TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported io.k8s.api.core.v1.HostAlias: description: HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file. properties: hostnames: description: Hostnames for the above IP address. items: type: string type: array ip: description: IP address of the host file entry. type: string io.k8s.api.core.v1.HostPathVolumeSource: description: Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling. properties: path: description: 'Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string type: description: 'Type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' type: string required: - path io.k8s.api.core.v1.ISCSIPersistentVolumeSource: description: ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling. properties: chapAuthDiscovery: description: whether support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: description: whether support iSCSI Session CHAP authentication type: boolean fsType: description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi' type: string initiatorName: description: Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: description: Target iSCSI Qualified Name. type: string iscsiInterface: description: iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string lun: description: iSCSI Target Lun number. format: int32 type: integer portals: description: iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). items: type: string type: array readOnly: description: ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: CHAP Secret for iSCSI target and initiator authentication targetPortal: description: iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). type: string required: - targetPortal - iqn - lun io.k8s.api.core.v1.ISCSIVolumeSource: description: Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling. properties: chapAuthDiscovery: description: whether support iSCSI Discovery CHAP authentication type: boolean chapAuthSession: description: whether support iSCSI Session CHAP authentication type: boolean fsType: description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi' type: string initiatorName: description: Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection. type: string iqn: description: Target iSCSI Qualified Name. type: string iscsiInterface: description: iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string lun: description: iSCSI Target Lun number. format: int32 type: integer portals: description: iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). items: type: string type: array readOnly: description: ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: CHAP Secret for iSCSI target and initiator authentication targetPortal: description: iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). type: string required: - targetPortal - iqn - lun io.k8s.api.core.v1.KeyToPath: description: Maps a string key to a path within a volume. properties: key: description: The key to project. type: string mode: description: 'Optional: mode bits to use on this file, must be a value between 0 and 0777. 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.' format: int32 type: integer path: description: The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. type: string required: - key - path io.k8s.api.core.v1.Lifecycle: description: Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted. properties: postStart: $ref: '#/definitions/io.k8s.api.core.v1.Handler' description: 'PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' preStop: $ref: '#/definitions/io.k8s.api.core.v1.Handler' description: 'PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' io.k8s.api.core.v1.LimitRange: description: LimitRange sets resource usage limits for each kind of resource in a Namespace. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.LimitRangeSpec' description: 'Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: '' kind: LimitRange version: v1 io.k8s.api.core.v1.LimitRangeItem: description: LimitRangeItem defines a min/max usage limit for any resource that matches on kind. properties: default: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: Default resource requirement limit value by resource name if resource limit is omitted. type: object defaultRequest: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: DefaultRequest is the default resource requirement request value by resource name if resource request is omitted. type: object max: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: Max usage constraints on this kind by resource name. type: object maxLimitRequestRatio: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource. type: object min: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: Min usage constraints on this kind by resource name. type: object type: description: Type of resource that this limit applies to. type: string io.k8s.api.core.v1.LimitRangeList: description: LimitRangeList is a list of LimitRange items. 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/api-conventions.md#resources' type: string items: description: 'Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' items: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: LimitRangeList version: v1 io.k8s.api.core.v1.LimitRangeSpec: description: LimitRangeSpec defines a min/max usage limit for resources that match on kind. properties: limits: description: Limits is the list of LimitRangeItem objects that are enforced. items: $ref: '#/definitions/io.k8s.api.core.v1.LimitRangeItem' type: array required: - limits io.k8s.api.core.v1.LoadBalancerIngress: description: 'LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.' properties: hostname: description: Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers) type: string ip: description: IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers) type: string io.k8s.api.core.v1.LoadBalancerStatus: description: LoadBalancerStatus represents the status of a load-balancer. properties: ingress: description: Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points. items: $ref: '#/definitions/io.k8s.api.core.v1.LoadBalancerIngress' type: array io.k8s.api.core.v1.LocalObjectReference: 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' type: string io.k8s.api.core.v1.LocalVolumeSource: description: Local represents directly-attached storage with node affinity (Beta feature) properties: path: description: The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). Directories can be represented only by PersistentVolume with VolumeMode=Filesystem. Block devices can be represented only by VolumeMode=Block, which also requires the BlockVolume alpha feature gate to be enabled. type: string required: - path io.k8s.api.core.v1.NFSVolumeSource: description: Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling. properties: path: description: 'Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string readOnly: description: 'ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: boolean server: description: 'Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' type: string required: - server - path io.k8s.api.core.v1.Namespace: description: Namespace provides a scope for Names. Use of multiple namespaces is optional. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.NamespaceSpec' description: 'Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.core.v1.NamespaceStatus' description: 'Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: '' kind: Namespace version: v1 io.k8s.api.core.v1.NamespaceList: description: NamespaceList is a list of Namespaces. 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/api-conventions.md#resources' type: string items: description: 'Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' items: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: NamespaceList version: v1 io.k8s.api.core.v1.NamespaceSpec: description: NamespaceSpec describes the attributes on a Namespace. properties: finalizers: description: 'Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/' items: type: string type: array io.k8s.api.core.v1.NamespaceStatus: description: NamespaceStatus is information about the current status of a Namespace. properties: phase: description: 'Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/' type: string io.k8s.api.core.v1.Node: description: Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd). 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.NodeSpec' description: Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status status: $ref: '#/definitions/io.k8s.api.core.v1.NodeStatus' description: 'Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: '' kind: Node version: v1 io.k8s.api.core.v1.NodeAddress: description: NodeAddress contains information for the node's address. properties: address: description: The node address. type: string type: description: Node address type, one of Hostname, ExternalIP or InternalIP. type: string required: - type - address io.k8s.api.core.v1.NodeAffinity: description: Node affinity is a group of node affinity scheduling rules. properties: preferredDuringSchedulingIgnoredDuringExecution: description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. items: $ref: '#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm' type: array requiredDuringSchedulingIgnoredDuringExecution: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelector' 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 an update), the system may or may not try to eventually evict the pod from its node. io.k8s.api.core.v1.NodeCondition: description: NodeCondition contains condition information for a node. properties: lastHeartbeatTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time we got an update on a given condition. lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transit from one status to another. message: description: Human readable message indicating details about last transition. type: string reason: description: (brief) 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 node condition. type: string required: - type - status io.k8s.api.core.v1.NodeConfigSource: description: NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. properties: configMap: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource' description: ConfigMap is a reference to a Node's ConfigMap io.k8s.api.core.v1.NodeConfigStatus: description: NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource. properties: active: $ref: '#/definitions/io.k8s.api.core.v1.NodeConfigSource' description: Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error. assigned: $ref: '#/definitions/io.k8s.api.core.v1.NodeConfigSource' description: Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned. error: description: Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions. type: string lastKnownGood: $ref: '#/definitions/io.k8s.api.core.v1.NodeConfigSource' description: LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future. io.k8s.api.core.v1.NodeDaemonEndpoints: description: NodeDaemonEndpoints lists ports opened by daemons running on the Node. properties: kubeletEndpoint: $ref: '#/definitions/io.k8s.api.core.v1.DaemonEndpoint' description: Endpoint on which Kubelet is listening. io.k8s.api.core.v1.NodeList: description: NodeList is the whole list of all Nodes which have been registered with master. 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/api-conventions.md#resources' type: string items: description: List of nodes items: $ref: '#/definitions/io.k8s.api.core.v1.Node' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: NodeList version: v1 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: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelectorTerm' type: array required: - nodeSelectorTerms io.k8s.api.core.v1.NodeSelectorRequirement: description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator io.k8s.api.core.v1.NodeSelectorTerm: description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement' type: array matchFields: description: A list of node selector requirements by node's fields. items: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement' type: array io.k8s.api.core.v1.NodeSpec: description: NodeSpec describes the attributes that a node is created with. properties: configSource: $ref: '#/definitions/io.k8s.api.core.v1.NodeConfigSource' description: If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field externalID: description: 'Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966' type: string podCIDR: description: PodCIDR represents the pod IP range assigned to the node. type: string providerID: description: 'ID of the node assigned by the cloud provider in the format: ://' type: string taints: description: If specified, the node's taints. items: $ref: '#/definitions/io.k8s.api.core.v1.Taint' type: array 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' type: boolean io.k8s.api.core.v1.NodeStatus: description: NodeStatus is information about the current status of a node. properties: addresses: description: 'List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses' items: $ref: '#/definitions/io.k8s.api.core.v1.NodeAddress' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge allocatable: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity. type: object capacity: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: 'Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity' type: object conditions: description: 'Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition' items: $ref: '#/definitions/io.k8s.api.core.v1.NodeCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge config: $ref: '#/definitions/io.k8s.api.core.v1.NodeConfigStatus' description: Status of the config assigned to the node via the dynamic Kubelet config feature. daemonEndpoints: $ref: '#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints' description: Endpoints of daemons running on the Node. images: description: List of container images on this node items: $ref: '#/definitions/io.k8s.api.core.v1.ContainerImage' type: array nodeInfo: $ref: '#/definitions/io.k8s.api.core.v1.NodeSystemInfo' description: 'Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info' phase: 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 volumesAttached: description: List of volumes that are attached to the node. items: $ref: '#/definitions/io.k8s.api.core.v1.AttachedVolume' type: array volumesInUse: description: List of attachable volumes in use (mounted) by the node. items: type: string type: array io.k8s.api.core.v1.NodeSystemInfo: description: NodeSystemInfo is a set of ids/uuids to uniquely identify the node. properties: architecture: description: The Architecture reported by the node type: string bootID: description: Boot ID reported by the node. type: string containerRuntimeVersion: description: ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0). type: string kernelVersion: description: Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64). type: string kubeProxyVersion: description: KubeProxy Version reported by the node. type: string kubeletVersion: description: Kubelet Version reported by the node. type: string machineID: description: 'MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html' type: string operatingSystem: description: The Operating System reported by the node type: string osImage: description: OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). type: string systemUUID: description: SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html type: string required: - machineID - systemUUID - bootID - kernelVersion - osImage - containerRuntimeVersion - kubeletVersion - kubeProxyVersion - operatingSystem - architecture io.k8s.api.core.v1.ObjectFieldSelector: description: ObjectFieldSelector selects an APIVersioned field of an object. properties: apiVersion: description: Version of the schema the FieldPath is written in terms of, defaults to "v1". type: string fieldPath: description: Path of the field to select in the specified API version. type: string required: - fieldPath io.k8s.api.core.v1.ObjectReference: description: ObjectReference contains enough information to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string io.k8s.api.core.v1.PersistentVolume: description: 'PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes' 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec' description: 'Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes' status: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus' description: 'Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes' x-kubernetes-group-version-kind: - group: '' kind: PersistentVolume version: v1 io.k8s.api.core.v1.PersistentVolumeClaim: description: PersistentVolumeClaim is a user's request for and claim to a persistent volume 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec' description: 'Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' status: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus' description: 'Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' x-kubernetes-group-version-kind: - group: '' kind: PersistentVolumeClaim version: v1 io.k8s.api.core.v1.PersistentVolumeClaimCondition: description: PersistentVolumeClaimCondition contails details about state of pvc properties: lastProbeTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time we probed the condition. lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. message: description: Human-readable message indicating details about last transition. type: string reason: description: 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. type: string status: type: string type: type: string required: - type - status io.k8s.api.core.v1.PersistentVolumeClaimList: description: PersistentVolumeClaimList is a list of PersistentVolumeClaim items. 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/api-conventions.md#resources' type: string items: description: 'A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' items: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: PersistentVolumeClaimList version: v1 io.k8s.api.core.v1.PersistentVolumeClaimSpec: description: PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes properties: accessModes: description: 'AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array resources: $ref: '#/definitions/io.k8s.api.core.v1.ResourceRequirements' description: 'Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: A label query over volumes to consider for binding. storageClassName: description: 'Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' type: string volumeMode: description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is an alpha feature and may change in the future. type: string volumeName: description: VolumeName is the binding reference to the PersistentVolume backing this claim. type: string io.k8s.api.core.v1.PersistentVolumeClaimStatus: description: PersistentVolumeClaimStatus is the current status of a persistent volume claim. properties: accessModes: description: 'AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' items: type: string type: array capacity: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: Represents the actual resources of the underlying volume. type: object conditions: description: Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'. items: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge phase: description: Phase represents the current phase of PersistentVolumeClaim. type: string io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource: description: PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system). properties: claimName: description: 'ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' type: string readOnly: description: Will force the ReadOnly setting in VolumeMounts. Default false. type: boolean required: - claimName io.k8s.api.core.v1.PersistentVolumeList: description: PersistentVolumeList is a list of PersistentVolume items. 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/api-conventions.md#resources' type: string items: description: 'List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes' items: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: PersistentVolumeList version: v1 io.k8s.api.core.v1.PersistentVolumeSpec: description: PersistentVolumeSpec is the specification of a persistent volume. properties: accessModes: description: 'AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes' items: type: string type: array awsElasticBlockStore: $ref: '#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource' description: 'AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' azureDisk: $ref: '#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource' description: AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. azureFile: $ref: '#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource' description: AzureFile represents an Azure File Service mount on the host and bind mount to the pod. capacity: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: 'A description of the persistent volume''s resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity' type: object cephfs: $ref: '#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource' description: CephFS represents a Ceph FS mount on the host that shares a pod's lifetime cinder: $ref: '#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource' description: 'Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' claimRef: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: 'ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding' csi: $ref: '#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource' description: CSI represents storage that handled by an external CSI driver (Beta feature). fc: $ref: '#/definitions/io.k8s.api.core.v1.FCVolumeSource' description: FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. flexVolume: $ref: '#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource' description: FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. flocker: $ref: '#/definitions/io.k8s.api.core.v1.FlockerVolumeSource' description: Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running gcePersistentDisk: $ref: '#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource' description: 'GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' glusterfs: $ref: '#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource' description: 'Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md' hostPath: $ref: '#/definitions/io.k8s.api.core.v1.HostPathVolumeSource' description: 'HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' iscsi: $ref: '#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource' description: ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. local: $ref: '#/definitions/io.k8s.api.core.v1.LocalVolumeSource' description: Local represents directly-attached storage with node affinity mountOptions: description: 'A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options' items: type: string type: array nfs: $ref: '#/definitions/io.k8s.api.core.v1.NFSVolumeSource' description: 'NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' nodeAffinity: $ref: '#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity' description: NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. persistentVolumeReclaimPolicy: description: 'What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming' type: string photonPersistentDisk: $ref: '#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource' description: PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine portworxVolume: $ref: '#/definitions/io.k8s.api.core.v1.PortworxVolumeSource' description: PortworxVolume represents a portworx volume attached and mounted on kubelets host machine quobyte: $ref: '#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource' description: Quobyte represents a Quobyte mount on the host that shares a pod's lifetime rbd: $ref: '#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource' description: 'RBD represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md' scaleIO: $ref: '#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource' description: ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. storageClassName: description: Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass. type: string storageos: $ref: '#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource' description: 'StorageOS represents a StorageOS volume that is attached to the kubelet''s host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md' volumeMode: description: volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. This is an alpha feature and may change in the future. type: string vsphereVolume: $ref: '#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource' description: VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine io.k8s.api.core.v1.PersistentVolumeStatus: description: PersistentVolumeStatus is the current status of a persistent volume. properties: message: description: A human-readable message indicating details about why the volume is in this state. type: string phase: description: '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' type: string reason: description: Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI. type: string io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource: description: Represents a Photon Controller persistent disk resource. properties: fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string pdID: description: ID that identifies Photon Controller persistent disk type: string required: - pdID io.k8s.api.core.v1.Pod: description: Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.PodSpec' description: 'Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.core.v1.PodStatus' description: 'Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: '' kind: Pod version: v1 io.k8s.api.core.v1.PodAffinity: description: Pod affinity is a group of inter pod affinity scheduling rules. properties: preferredDuringSchedulingIgnoredDuringExecution: description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: $ref: '#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm' type: array 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 io.k8s.api.core.v1.PodAffinityTerm: description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running properties: labelSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: A label query over a set of resources, in this case pods. namespaces: description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" items: type: string type: array 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. type: string required: - topologyKey io.k8s.api.core.v1.PodAntiAffinity: description: Pod anti affinity is a group of inter pod anti affinity scheduling rules. properties: preferredDuringSchedulingIgnoredDuringExecution: description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: $ref: '#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm' type: array 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 io.k8s.api.core.v1.PodCondition: description: PodCondition contains details for the current condition of this pod. properties: lastProbeTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time we probed the condition. lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. message: description: Human-readable message indicating details about last transition. type: string reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: 'Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' type: string type: description: 'Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' type: string required: - type - status io.k8s.api.core.v1.PodDNSConfig: description: PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. properties: nameservers: description: A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed. items: type: string type: array 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 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 io.k8s.api.core.v1.PodDNSConfigOption: description: PodDNSConfigOption defines DNS resolver options of a pod. properties: name: description: Required. type: string value: type: string io.k8s.api.core.v1.PodList: description: PodList is a list of Pods. 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/api-conventions.md#resources' type: string items: description: 'List of pods. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md' items: $ref: '#/definitions/io.k8s.api.core.v1.Pod' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: PodList version: v1 io.k8s.api.core.v1.PodReadinessGate: description: PodReadinessGate contains the reference to a pod condition properties: conditionType: description: ConditionType refers to a condition in the pod's condition list with matching type. type: string required: - conditionType 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: 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: 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.' format: int64 type: integer runAsGroup: description: 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. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. type: boolean runAsUser: description: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. format: int64 type: integer seLinuxOptions: $ref: '#/definitions/io.k8s.api.core.v1.SELinuxOptions' description: The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. supplementalGroups: description: A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. items: format: int64 type: integer type: array 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. items: $ref: '#/definitions/io.k8s.api.core.v1.Sysctl' type: array io.k8s.api.core.v1.PodSpec: description: PodSpec is a description of a pod. properties: activeDeadlineSeconds: description: Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer. format: int64 type: integer affinity: $ref: '#/definitions/io.k8s.api.core.v1.Affinity' description: If specified, the pod's scheduling constraints automountServiceAccountToken: description: AutomountServiceAccountToken indicates whether a service account token should be automatically mounted. type: boolean containers: description: List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. items: $ref: '#/definitions/io.k8s.api.core.v1.Container' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge dnsConfig: $ref: '#/definitions/io.k8s.api.core.v1.PodDNSConfig' description: Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy. dnsPolicy: description: 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'. type: string 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. items: $ref: '#/definitions/io.k8s.api.core.v1.HostAlias' type: array x-kubernetes-patch-merge-key: ip x-kubernetes-patch-strategy: merge hostIPC: description: 'Use the host''s ipc namespace. Optional: Default to false.' type: boolean hostNetwork: description: 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. type: boolean hostPID: description: 'Use the host''s pid namespace. Optional: Default to false.' type: boolean hostname: description: Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. type: string imagePullSecrets: description: 'ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod' items: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge initContainers: description: 'List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/' items: $ref: '#/definitions/io.k8s.api.core.v1.Container' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge nodeName: description: NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements. type: string nodeSelector: additionalProperties: type: string description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/' type: object priority: description: The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority. format: int32 type: integer priorityClassName: description: If specified, indicates the pod's priority. "system-node-critical" and "system-cluster-critical" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. type: string readinessGates: description: 'If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to "True" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md' items: $ref: '#/definitions/io.k8s.api.core.v1.PodReadinessGate' type: array restartPolicy: description: 'Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy' type: string schedulerName: description: If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. type: string securityContext: $ref: '#/definitions/io.k8s.api.core.v1.PodSecurityContext' 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.' type: string serviceAccountName: description: '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/' type: string shareProcessNamespace: description: '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. This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.' type: boolean subdomain: description: If specified, the fully qualified Pod hostname will be "...svc.". If not specified, the pod will not have a domainname at all. type: string terminationGracePeriodSeconds: description: Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds. format: int64 type: integer tolerations: description: If specified, the pod's tolerations. items: $ref: '#/definitions/io.k8s.api.core.v1.Toleration' type: array volumes: description: 'List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes' items: $ref: '#/definitions/io.k8s.api.core.v1.Volume' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge,retainKeys required: - containers io.k8s.api.core.v1.PodStatus: description: PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. properties: conditions: description: 'Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' items: $ref: '#/definitions/io.k8s.api.core.v1.PodCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge containerStatuses: description: 'The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status' items: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStatus' type: array hostIP: description: IP address of the host to which the pod is assigned. Empty if not yet scheduled. type: string initContainerStatuses: description: 'The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status' items: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStatus' type: array message: description: A human readable message indicating details about why the pod is in this condition. type: string nominatedNodeName: description: nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. type: string phase: description: 'The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod''s status. There are five possible phase values: Pending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase' type: string podIP: description: IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated. type: string qosClass: description: 'The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md' type: string reason: description: A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted' type: string startTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. io.k8s.api.core.v1.PodTemplate: description: PodTemplate describes a template for creating copies of a predefined pod. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status x-kubernetes-group-version-kind: - group: '' kind: PodTemplate version: v1 io.k8s.api.core.v1.PodTemplateList: description: PodTemplateList is a list of PodTemplates. 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/api-conventions.md#resources' type: string items: description: List of pod templates items: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: PodTemplateList version: v1 io.k8s.api.core.v1.PodTemplateSpec: description: PodTemplateSpec describes the data a pod should have when created from a template properties: metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.PodSpec' description: 'Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' io.k8s.api.core.v1.PortworxVolumeSource: description: PortworxVolumeSource represents a Portworx volume resource. properties: fsType: description: FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. type: string readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean volumeID: description: VolumeID uniquely identifies a Portworx volume type: string required: - volumeID io.k8s.api.core.v1.PreferredSchedulingTerm: description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). properties: preference: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelectorTerm' description: A node selector term, associated with the corresponding weight. weight: description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. format: int32 type: integer required: - weight - preference io.k8s.api.core.v1.Probe: description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. properties: exec: $ref: '#/definitions/io.k8s.api.core.v1.ExecAction' description: One and only one of the following should be specified. Exec specifies the action to take. failureThreshold: description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. format: int32 type: integer httpGet: $ref: '#/definitions/io.k8s.api.core.v1.HTTPGetAction' description: HTTPGet specifies the http request to perform. initialDelaySeconds: description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer periodSeconds: description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. format: int32 type: integer successThreshold: description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1. format: int32 type: integer tcpSocket: $ref: '#/definitions/io.k8s.api.core.v1.TCPSocketAction' description: TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported timeoutSeconds: description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' format: int32 type: integer io.k8s.api.core.v1.ProjectedVolumeSource: description: Represents a projected volume source properties: defaultMode: description: Mode bits to use on created files by default. Must be a value between 0 and 0777. 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. format: int32 type: integer sources: description: list of volume projections items: $ref: '#/definitions/io.k8s.api.core.v1.VolumeProjection' type: array required: - sources io.k8s.api.core.v1.QuobyteVolumeSource: description: Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling. properties: group: description: Group to map volume access to Default is no group type: string readOnly: description: ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. type: boolean registry: description: Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes type: string user: description: User to map volume access to Defaults to serivceaccount user type: string volume: description: Volume is a string that references an already created Quobyte volume by name. type: string required: - registry - volume io.k8s.api.core.v1.RBDPersistentVolumeSource: description: Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling. properties: fsType: description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd' type: string image: description: 'The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string keyring: description: 'Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string monitors: description: 'A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' items: type: string type: array pool: description: 'The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string readOnly: description: 'ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: 'SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' user: description: 'The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string required: - monitors - image io.k8s.api.core.v1.RBDVolumeSource: description: Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling. properties: fsType: description: 'Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd' type: string image: description: 'The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string keyring: description: 'Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string monitors: description: 'A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' items: type: string type: array pool: description: 'The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string readOnly: description: 'ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: 'SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' user: description: 'The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it' type: string required: - monitors - image io.k8s.api.core.v1.ReplicationController: description: ReplicationController represents the configuration of a replication controller. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec' description: 'Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus' description: 'Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: '' kind: ReplicationController version: v1 io.k8s.api.core.v1.ReplicationControllerCondition: description: ReplicationControllerCondition describes the state of a replication controller at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: The last time the condition transitioned from one status to another. 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 replication controller condition. type: string required: - type - status io.k8s.api.core.v1.ReplicationControllerList: description: ReplicationControllerList is a collection of replication controllers. 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/api-conventions.md#resources' type: string items: description: 'List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller' items: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: ReplicationControllerList version: v1 io.k8s.api.core.v1.ReplicationControllerSpec: description: ReplicationControllerSpec is the specification of a replication controller. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer replicas: description: 'Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller' format: int32 type: integer selector: additionalProperties: type: string description: 'Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' type: object template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template' io.k8s.api.core.v1.ReplicationControllerStatus: description: ReplicationControllerStatus represents the current status of a replication controller. properties: availableReplicas: description: The number of available replicas (ready for at least minReadySeconds) for this replication controller. format: int32 type: integer conditions: description: Represents the latest available observations of a replication controller's current state. items: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge fullyLabeledReplicas: description: The number of pods that have labels matching the labels of the pod template of the replication controller. format: int32 type: integer observedGeneration: description: ObservedGeneration reflects the generation of the most recently observed replication controller. format: int64 type: integer readyReplicas: description: The number of ready replicas for this replication controller. format: int32 type: integer replicas: description: 'Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller' format: int32 type: integer required: - replicas io.k8s.api.core.v1.ResourceFieldSelector: description: ResourceFieldSelector represents container resources (cpu, memory) and their output format properties: containerName: description: 'Container name: required for volumes, optional for env vars' type: string divisor: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: Specifies the output format of the exposed resources, defaults to "1" resource: description: 'Required: resource to select' type: string required: - resource io.k8s.api.core.v1.ResourceQuota: description: ResourceQuota sets aggregate quota restrictions enforced per namespace 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec' description: Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status status: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus' description: Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status x-kubernetes-group-version-kind: - group: '' kind: ResourceQuota version: v1 io.k8s.api.core.v1.ResourceQuotaList: description: ResourceQuotaList is a list of ResourceQuota items. 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/api-conventions.md#resources' type: string items: description: 'Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/' items: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: ResourceQuotaList version: v1 io.k8s.api.core.v1.ResourceQuotaSpec: description: ResourceQuotaSpec defines the desired hard limits to enforce for Quota. properties: hard: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: 'hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/' type: object scopeSelector: $ref: '#/definitions/io.k8s.api.core.v1.ScopeSelector' description: scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched. scopes: description: A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects. items: type: string type: array io.k8s.api.core.v1.ResourceQuotaStatus: description: ResourceQuotaStatus defines the enforced hard limits and observed use. properties: hard: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: 'Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/' type: object used: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: Used is the current observed total usage of the resource in the namespace. type: object io.k8s.api.core.v1.ResourceRequirements: description: ResourceRequirements describes the compute resource requirements. properties: limits: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object requests: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity' description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object io.k8s.api.core.v1.SELinuxOptions: description: SELinuxOptions are the labels to be applied to the container properties: level: description: Level is SELinux level label that applies to the container. type: string role: description: Role is a SELinux role label that applies to the container. type: string type: description: Type is a SELinux type label that applies to the container. type: string user: description: User is a SELinux user label that applies to the container. type: string io.k8s.api.core.v1.ScaleIOPersistentVolumeSource: description: ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume properties: fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string gateway: description: The host address of the ScaleIO API Gateway. type: string protectionDomain: description: The name of the ScaleIO Protection Domain for the configured storage. type: string readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.SecretReference' description: SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. sslEnabled: description: Flag to enable/disable SSL communication with Gateway, default false type: boolean storageMode: description: Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. type: string storagePool: description: The ScaleIO Storage Pool associated with the protection domain. type: string system: description: The name of the storage system as configured in ScaleIO. type: string volumeName: description: The name of a volume already created in the ScaleIO system that is associated with this volume source. type: string required: - gateway - system - secretRef io.k8s.api.core.v1.ScaleIOVolumeSource: description: ScaleIOVolumeSource represents a persistent ScaleIO volume properties: fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string gateway: description: The host address of the ScaleIO API Gateway. type: string protectionDomain: description: The name of the ScaleIO Protection Domain for the configured storage. type: string readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. sslEnabled: description: Flag to enable/disable SSL communication with Gateway, default false type: boolean storageMode: description: Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. type: string storagePool: description: The ScaleIO Storage Pool associated with the protection domain. type: string system: description: The name of the storage system as configured in ScaleIO. type: string volumeName: description: The name of a volume already created in the ScaleIO system that is associated with this volume source. type: string required: - gateway - system - secretRef io.k8s.api.core.v1.ScopeSelector: description: A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements. properties: matchExpressions: description: A list of scope selector requirements by scope of the resources. items: $ref: '#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement' type: array io.k8s.api.core.v1.ScopedResourceSelectorRequirement: description: A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values. properties: operator: description: Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. type: string scopeName: description: The name of the scope that the selector applies to. type: string values: description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - scopeName - operator io.k8s.api.core.v1.Secret: description: Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes. 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/api-conventions.md#resources' type: string data: additionalProperties: format: byte type: string description: Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4 type: object 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' stringData: additionalProperties: type: string description: stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API. type: object type: description: Used to facilitate programmatic handling of secret data. type: string x-kubernetes-group-version-kind: - group: '' kind: Secret version: v1 io.k8s.api.core.v1.SecretEnvSource: description: 'SecretEnvSource selects a Secret to populate the environment variables with. The 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' type: string optional: description: Specify whether the Secret must be defined type: boolean io.k8s.api.core.v1.SecretKeySelector: description: SecretKeySelector selects a key of a Secret. properties: key: description: The key of the secret to select from. Must be a valid secret key. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string optional: description: Specify whether the Secret or it's key must be defined type: boolean required: - key io.k8s.api.core.v1.SecretList: description: SecretList is a list of Secret. 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/api-conventions.md#resources' type: string items: description: 'Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret' items: $ref: '#/definitions/io.k8s.api.core.v1.Secret' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: SecretList version: v1 io.k8s.api.core.v1.SecretProjection: description: 'Adapts a secret into a projected volume. The contents of the target Secret''s Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.' properties: items: description: 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 '..'. items: $ref: '#/definitions/io.k8s.api.core.v1.KeyToPath' type: array name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean io.k8s.api.core.v1.SecretReference: description: SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace properties: name: description: Name is unique within a namespace to reference a secret resource. type: string namespace: description: Namespace defines the space within which the secret name must be unique. type: string io.k8s.api.core.v1.SecretVolumeSource: description: 'Adapts a Secret into a volume. The contents of the target Secret''s Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.' properties: defaultMode: description: 'Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. 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.' format: int32 type: integer items: description: 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 '..'. items: $ref: '#/definitions/io.k8s.api.core.v1.KeyToPath' type: array optional: description: Specify whether the Secret or it's keys must be defined type: boolean secretName: description: 'Name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' type: string io.k8s.api.core.v1.SecurityContext: description: SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. properties: allowPrivilegeEscalation: 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' type: boolean 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. privileged: description: Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. type: boolean readOnlyRootFilesystem: description: Whether this container has a read-only root filesystem. Default is false. type: boolean runAsGroup: description: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. format: int64 type: integer runAsNonRoot: description: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. type: boolean runAsUser: description: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. format: int64 type: integer seLinuxOptions: $ref: '#/definitions/io.k8s.api.core.v1.SELinuxOptions' description: The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. io.k8s.api.core.v1.Service: description: Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.core.v1.ServiceSpec' description: Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status status: $ref: '#/definitions/io.k8s.api.core.v1.ServiceStatus' description: 'Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: '' kind: Service version: v1 io.k8s.api.core.v1.ServiceAccount: description: 'ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets' 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/api-conventions.md#resources' type: string automountServiceAccountToken: description: AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level. type: boolean imagePullSecrets: description: 'ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod' items: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' secrets: description: 'Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret' items: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge x-kubernetes-group-version-kind: - group: '' kind: ServiceAccount version: v1 io.k8s.api.core.v1.ServiceAccountList: description: ServiceAccountList is a list of ServiceAccount objects 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/api-conventions.md#resources' type: string items: description: 'List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/' items: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: ServiceAccountList version: v1 io.k8s.api.core.v1.ServiceAccountTokenProjection: description: ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise). properties: audience: description: Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. type: string expirationSeconds: description: ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. format: int64 type: integer path: description: Path is the path relative to the mount point of the file to project the token into. type: string required: - path io.k8s.api.core.v1.ServiceList: description: ServiceList holds a list of services. 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/api-conventions.md#resources' type: string items: description: List of services items: $ref: '#/definitions/io.k8s.api.core.v1.Service' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: '' kind: ServiceList version: v1 io.k8s.api.core.v1.ServicePort: description: ServicePort contains information on service's port. properties: name: description: The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service. type: string nodePort: description: 'The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' format: int32 type: integer port: description: The port that will be exposed by this service. format: int32 type: integer protocol: description: The IP protocol for this port. Supports "TCP" and "UDP". Default is TCP. type: string targetPort: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod''s container ports. If this is not specified, the value of the ''port'' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' required: - port io.k8s.api.core.v1.ServiceSpec: description: ServiceSpec describes the attributes that a user creates on a service. properties: clusterIP: description: 'clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are "None", empty string (""), or a valid IP address. "None" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' type: string externalIPs: description: externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system. items: type: string type: array externalName: description: externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName. type: string externalTrafficPolicy: description: externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. "Local" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. "Cluster" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading. type: string healthCheckNodePort: description: healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local. format: int32 type: integer loadBalancerIP: description: 'Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.' type: string loadBalancerSourceRanges: description: 'If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature." More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/' items: type: string type: array 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' items: $ref: '#/definitions/io.k8s.api.core.v1.ServicePort' type: array x-kubernetes-patch-merge-key: port x-kubernetes-patch-strategy: merge publishNotReadyAddresses: description: publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. type: boolean selector: additionalProperties: type: string description: '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/' type: object sessionAffinity: description: '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' type: string sessionAffinityConfig: $ref: '#/definitions/io.k8s.api.core.v1.SessionAffinityConfig' description: sessionAffinityConfig contains the configurations of session affinity. type: description: 'type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the specified externalName. "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. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types' type: string io.k8s.api.core.v1.ServiceStatus: description: ServiceStatus represents the current status of a service. properties: loadBalancer: $ref: '#/definitions/io.k8s.api.core.v1.LoadBalancerStatus' description: LoadBalancer contains the current status of the load-balancer, if one is present. io.k8s.api.core.v1.SessionAffinityConfig: description: SessionAffinityConfig represents the configurations of session affinity. properties: clientIP: $ref: '#/definitions/io.k8s.api.core.v1.ClientIPConfig' description: clientIP contains the configurations of Client IP based session affinity. io.k8s.api.core.v1.StorageOSPersistentVolumeSource: description: Represents a StorageOS persistent volume resource. properties: fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. volumeName: description: VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. type: string volumeNamespace: description: VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. type: string io.k8s.api.core.v1.StorageOSVolumeSource: description: Represents a StorageOS persistent volume resource. properties: fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string readOnly: description: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean secretRef: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. volumeName: description: VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. type: string volumeNamespace: description: VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. type: string io.k8s.api.core.v1.Sysctl: description: Sysctl defines a kernel parameter to be set properties: name: description: Name of a property to set type: string value: description: Value of a property to set type: string required: - name - value io.k8s.api.core.v1.TCPSocketAction: description: TCPSocketAction describes an action based on opening a socket properties: host: description: 'Optional: Host name to connect to, defaults to the pod IP.' type: string port: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. required: - port io.k8s.api.core.v1.Taint: description: The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint. properties: effect: description: Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute. type: string key: description: Required. The taint key to be applied to a node. type: string timeAdded: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. value: description: Required. The taint value corresponding to the taint key. type: string required: - key - effect io.k8s.api.core.v1.Toleration: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: effect: description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. type: string key: description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string operator: description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. type: string tolerationSeconds: description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer value: description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. type: string io.k8s.api.core.v1.TopologySelectorLabelRequirement: description: A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future. properties: key: description: The label key that the selector applies to. type: string values: description: An array of string values. One value must match the label to be selected. Each entry in Values is ORed. items: type: string type: array required: - key - values io.k8s.api.core.v1.TopologySelectorTerm: description: A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future. properties: matchLabelExpressions: description: A list of topology selector requirements by labels. items: $ref: '#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement' type: array io.k8s.api.core.v1.Volume: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. properties: awsElasticBlockStore: $ref: '#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource' description: 'AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' azureDisk: $ref: '#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource' description: AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. azureFile: $ref: '#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource' description: AzureFile represents an Azure File Service mount on the host and bind mount to the pod. cephfs: $ref: '#/definitions/io.k8s.api.core.v1.CephFSVolumeSource' description: CephFS represents a Ceph FS mount on the host that shares a pod's lifetime cinder: $ref: '#/definitions/io.k8s.api.core.v1.CinderVolumeSource' description: 'Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md' configMap: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource' description: ConfigMap represents a configMap that should populate this volume downwardAPI: $ref: '#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource' description: DownwardAPI represents downward API about the pod that should populate this volume emptyDir: $ref: '#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource' description: 'EmptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' fc: $ref: '#/definitions/io.k8s.api.core.v1.FCVolumeSource' description: FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. flexVolume: $ref: '#/definitions/io.k8s.api.core.v1.FlexVolumeSource' description: FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. flocker: $ref: '#/definitions/io.k8s.api.core.v1.FlockerVolumeSource' description: Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running gcePersistentDisk: $ref: '#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource' description: 'GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' gitRepo: $ref: '#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource' description: 'GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.' glusterfs: $ref: '#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource' description: 'Glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md' hostPath: $ref: '#/definitions/io.k8s.api.core.v1.HostPathVolumeSource' description: 'HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' iscsi: $ref: '#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource' description: 'ISCSI represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md' name: description: 'Volume''s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string nfs: $ref: '#/definitions/io.k8s.api.core.v1.NFSVolumeSource' description: 'NFS represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' persistentVolumeClaim: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource' description: 'PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' photonPersistentDisk: $ref: '#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource' description: PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine portworxVolume: $ref: '#/definitions/io.k8s.api.core.v1.PortworxVolumeSource' description: PortworxVolume represents a portworx volume attached and mounted on kubelets host machine projected: $ref: '#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource' description: Items for all in one resources secrets, configmaps, and downward API quobyte: $ref: '#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource' description: Quobyte represents a Quobyte mount on the host that shares a pod's lifetime rbd: $ref: '#/definitions/io.k8s.api.core.v1.RBDVolumeSource' description: 'RBD represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md' scaleIO: $ref: '#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource' description: ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. secret: $ref: '#/definitions/io.k8s.api.core.v1.SecretVolumeSource' description: 'Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' storageos: $ref: '#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource' description: StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. vsphereVolume: $ref: '#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource' description: VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine required: - name io.k8s.api.core.v1.VolumeDevice: description: volumeDevice describes a mapping of a raw block device within a container. properties: devicePath: description: devicePath is the path inside of the container that the device will be mapped to. type: string name: description: name must match the name of a persistentVolumeClaim in the pod type: string required: - name - devicePath io.k8s.api.core.v1.VolumeMount: description: VolumeMount describes a mounting of a Volume within a container. properties: mountPath: description: Path within the container at which the volume should be mounted. Must not contain ':'. 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. type: string name: description: This must match the Name of a Volume. type: string readOnly: description: Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. type: boolean subPath: description: Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). type: string required: - name - mountPath io.k8s.api.core.v1.VolumeNodeAffinity: description: VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from. properties: required: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelector' description: Required specifies hard node constraints that must be met. io.k8s.api.core.v1.VolumeProjection: description: Projection that may be projected along with other supported volume types properties: configMap: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapProjection' description: information about the configMap data to project downwardAPI: $ref: '#/definitions/io.k8s.api.core.v1.DownwardAPIProjection' description: information about the downwardAPI data to project secret: $ref: '#/definitions/io.k8s.api.core.v1.SecretProjection' description: information about the secret data to project serviceAccountToken: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection' description: information about the serviceAccountToken data to project io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource: description: Represents a vSphere volume resource. properties: fsType: description: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string storagePolicyID: description: Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. type: string storagePolicyName: description: Storage Policy Based Management (SPBM) profile name. type: string volumePath: description: Path that identifies vSphere volume vmdk type: string required: - volumePath io.k8s.api.core.v1.WeightedPodAffinityTerm: description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) properties: podAffinityTerm: $ref: '#/definitions/io.k8s.api.core.v1.PodAffinityTerm' description: Required. A pod affinity term, associated with the corresponding weight. weight: description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. format: int32 type: integer required: - weight - podAffinityTerm io.k8s.api.events.v1beta1.Event: description: Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. properties: action: description: What action was taken/failed regarding to the regarding object. type: string 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/api-conventions.md#resources' type: string deprecatedCount: description: Deprecated field assuring backward compatibility with core.v1 Event type format: int32 type: integer deprecatedFirstTimestamp: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Deprecated field assuring backward compatibility with core.v1 Event type deprecatedLastTimestamp: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Deprecated field assuring backward compatibility with core.v1 Event type deprecatedSource: $ref: '#/definitions/io.k8s.api.core.v1.EventSource' description: Deprecated field assuring backward compatibility with core.v1 Event type eventTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime' description: Required. Time when this Event was first observed. 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' note: description: Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB. type: string reason: description: Why the action was taken. type: string regarding: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: The object this Event is about. In most cases it's an Object reporting controller implements. E.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object. related: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object. reportingController: description: Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. type: string reportingInstance: description: ID of the controller instance, e.g. `kubelet-xyzf`. type: string series: $ref: '#/definitions/io.k8s.api.events.v1beta1.EventSeries' description: Data about the Event series this event represents or nil if it's a singleton Event. type: description: Type of this event (Normal, Warning), new types could be added in the future. type: string required: - eventTime x-kubernetes-group-version-kind: - group: events.k8s.io kind: Event version: v1beta1 io.k8s.api.events.v1beta1.EventList: description: EventList is a list of Event objects. 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/api-conventions.md#resources' type: string items: description: Items is a list of schema objects. items: $ref: '#/definitions/io.k8s.api.events.v1beta1.Event' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: events.k8s.io kind: EventList version: v1beta1 io.k8s.api.events.v1beta1.EventSeries: description: EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. properties: count: description: Number of occurrences in this series up to the last heartbeat time format: int32 type: integer lastObservedTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime' description: Time when last Event from the series was seen before last heartbeat. state: description: Information whether this series is ongoing or finished. type: string required: - count - lastObservedTime - state io.k8s.api.extensions.v1beta1.AllowedFlexVolume: description: 'AllowedFlexVolume represents a single Flexvolume that is allowed to be used. Deprecated: use AllowedFlexVolume from policy API Group instead.' properties: driver: description: driver is the name of the Flexvolume driver. type: string required: - driver io.k8s.api.extensions.v1beta1.AllowedHostPath: description: 'AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined. Deprecated: use AllowedHostPath from policy API Group instead.' properties: pathPrefix: description: 'pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path. Examples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`' type: string readOnly: description: when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly. type: boolean io.k8s.api.extensions.v1beta1.DaemonSet: description: DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec' description: 'The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus' description: 'The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: extensions kind: DaemonSet version: v1beta1 io.k8s.api.extensions.v1beta1.DaemonSetCondition: description: DaemonSetCondition describes the state of a DaemonSet at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 DaemonSet condition. type: string required: - type - status io.k8s.api.extensions.v1beta1.DaemonSetList: description: DaemonSetList is a collection of daemon sets. 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/api-conventions.md#resources' type: string items: description: A list of daemon sets. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: extensions kind: DaemonSetList version: v1beta1 io.k8s.api.extensions.v1beta1.DaemonSetSpec: description: DaemonSetSpec is the specification of a daemon set. properties: minReadySeconds: description: The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready). format: int32 type: integer revisionHistoryLimit: description: The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10. format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template''s node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template' templateGeneration: description: DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation. format: int64 type: integer updateStrategy: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy' description: An update strategy to replace existing DaemonSet pods with new pods. required: - template io.k8s.api.extensions.v1beta1.DaemonSetStatus: description: DaemonSetStatus represents the current status of a daemon set. properties: collisionCount: description: Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision. format: int32 type: integer conditions: description: Represents the latest available observations of a DaemonSet's current state. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge currentNumberScheduled: description: 'The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer desiredNumberScheduled: description: 'The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer numberAvailable: description: The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds) format: int32 type: integer numberMisscheduled: description: 'The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/' format: int32 type: integer numberReady: description: The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready. format: int32 type: integer numberUnavailable: description: The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds) format: int32 type: integer observedGeneration: description: The most recent generation observed by the daemon set controller. format: int64 type: integer updatedNumberScheduled: description: The total number of nodes that are running updated daemon pod format: int32 type: integer required: - currentNumberScheduled - numberMisscheduled - desiredNumberScheduled - numberReady io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy: properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet' description: Rolling update config params. Present only if type = "RollingUpdate". type: description: Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is OnDelete. type: string io.k8s.api.extensions.v1beta1.Deployment: description: DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object metadata. spec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec' description: Specification of the desired behavior of the Deployment. status: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus' description: Most recently observed status of the Deployment. x-kubernetes-group-version-kind: - group: extensions kind: Deployment version: v1beta1 io.k8s.api.extensions.v1beta1.DeploymentCondition: description: DeploymentCondition describes the state of a deployment at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. 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 deployment condition. type: string required: - type - status io.k8s.api.extensions.v1beta1.DeploymentList: description: DeploymentList is a list of Deployments. 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/api-conventions.md#resources' type: string items: description: Items is the list of Deployments. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard list metadata. required: - items x-kubernetes-group-version-kind: - group: extensions kind: DeploymentList version: v1beta1 io.k8s.api.extensions.v1beta1.DeploymentRollback: description: DEPRECATED. DeploymentRollback stores the information required to rollback a deployment. 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/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/api-conventions.md#types-kinds' type: string name: description: 'Required: This must match the Name of a deployment.' type: string rollbackTo: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig' description: The config of this deployment rollback. updatedAnnotations: additionalProperties: type: string description: The annotations to be updated to a deployment type: object required: - name - rollbackTo x-kubernetes-group-version-kind: - group: extensions kind: DeploymentRollback version: v1beta1 io.k8s.api.extensions.v1beta1.DeploymentSpec: description: DeploymentSpec is the specification of the desired behavior of the Deployment. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer paused: description: Indicates that the deployment is paused and will not be processed by the deployment controller. type: boolean progressDeadlineSeconds: description: The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is not set by default. format: int32 type: integer replicas: description: Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. format: int32 type: integer revisionHistoryLimit: description: The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer rollbackTo: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig' description: DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done. selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. strategy: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy' description: The deployment strategy to use to replace existing pods with new ones. x-kubernetes-patch-strategy: retainKeys template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: Template describes the pods that will be created. required: - template io.k8s.api.extensions.v1beta1.DeploymentStatus: description: DeploymentStatus is the most recently observed status of the Deployment. properties: availableReplicas: description: Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. format: int32 type: integer collisionCount: description: Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet. format: int32 type: integer conditions: description: Represents the latest available observations of a deployment's current state. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge observedGeneration: description: The generation observed by the deployment controller. format: int64 type: integer readyReplicas: description: Total number of ready pods targeted by this deployment. format: int32 type: integer replicas: description: Total number of non-terminated pods targeted by this deployment (their labels match the selector). format: int32 type: integer unavailableReplicas: description: Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. format: int32 type: integer updatedReplicas: description: Total number of non-terminated pods targeted by this deployment that have the desired template spec. format: int32 type: integer io.k8s.api.extensions.v1beta1.DeploymentStrategy: description: DeploymentStrategy describes how to replace existing pods with new ones. properties: rollingUpdate: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment' description: Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. type: description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. type: string io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions: description: 'FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead.' properties: ranges: description: ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IDRange' type: array rule: description: rule is the strategy that will dictate what FSGroup is used in the SecurityContext. type: string io.k8s.api.extensions.v1beta1.HTTPIngressPath: description: HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend. properties: backend: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend' description: Backend defines the referenced service endpoint to which the traffic will be forwarded to. path: description: Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional "path" part of a URL as defined by RFC 3986. Paths must begin with a '/'. If unspecified, the path defaults to a catch all sending traffic to the backend. type: string required: - backend io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue: description: 'HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last ''/'' and before the first ''?'' or ''#''.' properties: paths: description: A collection of paths that map requests to backends. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath' type: array required: - paths io.k8s.api.extensions.v1beta1.HostPortRange: description: 'HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined. Deprecated: use HostPortRange from policy API Group instead.' properties: max: description: max is the end of the range, inclusive. format: int32 type: integer min: description: min is the start of the range, inclusive. format: int32 type: integer required: - min - max io.k8s.api.extensions.v1beta1.IDRange: description: 'IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead.' properties: max: description: max is the end of the range, inclusive. format: int64 type: integer min: description: min is the start of the range, inclusive. format: int64 type: integer required: - min - max io.k8s.api.extensions.v1beta1.IPBlock: description: DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. "192.168.1.1/24") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule. properties: cidr: description: CIDR is a string representing the IP Block Valid examples are "192.168.1.1/24" type: string except: description: Except is a slice of CIDRs that should not be included within an IP Block Valid examples are "192.168.1.1/24" Except values will be rejected if they are outside the CIDR range items: type: string type: array required: - cidr io.k8s.api.extensions.v1beta1.Ingress: description: Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec' description: 'Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus' description: 'Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: extensions kind: Ingress version: v1beta1 io.k8s.api.extensions.v1beta1.IngressBackend: description: IngressBackend describes all endpoints for a given service and port. properties: serviceName: description: Specifies the name of the referenced service. type: string servicePort: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: Specifies the port of the referenced service. required: - serviceName - servicePort io.k8s.api.extensions.v1beta1.IngressList: description: IngressList is a collection of Ingress. 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/api-conventions.md#resources' type: string items: description: Items is the list of Ingress. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: extensions kind: IngressList version: v1beta1 io.k8s.api.extensions.v1beta1.IngressRule: description: IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue. properties: host: description: "Host is the fully qualified domain name of a network host, as\ \ defined by RFC 3986. Note the following deviations from the \"host\" part\ \ of the URI as defined in the RFC: 1. IPs are not allowed. Currently an\ \ IngressRuleValue can only apply to the\n\t IP in the Spec of the parent\ \ Ingress.\n2. The `:` delimiter is not respected because ports are not\ \ allowed.\n\t Currently the port of an Ingress is implicitly :80 for http\ \ and\n\t :443 for https.\nBoth these may change in the future. Incoming\ \ requests are matched against the host before the IngressRuleValue. If\ \ the host is unspecified, the Ingress routes all traffic based on the specified\ \ IngressRuleValue." type: string http: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue' io.k8s.api.extensions.v1beta1.IngressSpec: description: IngressSpec describes the Ingress the user wishes to exist. properties: backend: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend' description: A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default. rules: description: A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressRule' type: array tls: description: TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS' type: array io.k8s.api.extensions.v1beta1.IngressStatus: description: IngressStatus describe the current state of the Ingress. properties: loadBalancer: $ref: '#/definitions/io.k8s.api.core.v1.LoadBalancerStatus' description: LoadBalancer contains the current status of the load-balancer. io.k8s.api.extensions.v1beta1.IngressTLS: description: IngressTLS describes the transport layer security associated with an Ingress. properties: hosts: description: Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified. items: type: string type: array secretName: description: SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the "Host" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing. type: string io.k8s.api.extensions.v1beta1.NetworkPolicy: description: DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. NetworkPolicy describes what network traffic is allowed for a set of Pods 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec' description: Specification of the desired behavior for this NetworkPolicy. x-kubernetes-group-version-kind: - group: extensions kind: NetworkPolicy version: v1beta1 io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule: description: DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8 properties: ports: description: List of destination ports for outgoing traffic. 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.extensions.v1beta1.NetworkPolicyPort' type: array to: description: 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.extensions.v1beta1.NetworkPolicyPeer' type: array io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule: description: DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from. properties: from: description: List of sources which should be able to access the 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 sources (traffic not restricted by source). If this field is present and contains at least on item, this rule allows traffic only if the traffic matches at least one item in the from list. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer' type: array ports: description: 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.extensions.v1beta1.NetworkPolicyPort' type: array io.k8s.api.extensions.v1beta1.NetworkPolicyList: description: DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects. 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/api-conventions.md#resources' type: string items: description: Items is a list of schema objects. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: extensions kind: NetworkPolicyList version: v1beta1 io.k8s.api.extensions.v1beta1.NetworkPolicyPeer: description: DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer. properties: ipBlock: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IPBlock' description: IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be. namespaceSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces. If PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.' podSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods. If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy''s own Namespace.' io.k8s.api.extensions.v1beta1.NetworkPolicyPort: description: DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort. properties: port: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: If specified, the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched. protocol: description: Optional. The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP. type: string io.k8s.api.extensions.v1beta1.NetworkPolicySpec: description: DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec. properties: egress: description: List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8 items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule' type: array ingress: description: 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 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.extensions.v1beta1.NetworkPolicyIngressRule' type: array podSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. policyTypes: description: List of rule types that the NetworkPolicy relates to. Valid options are Ingress, Egress, or Ingress,Egress. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an Egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 items: type: string type: array required: - podSelector io.k8s.api.extensions.v1beta1.PodSecurityPolicy: description: 'PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.' 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec' description: spec defines the policy enforced. x-kubernetes-group-version-kind: - group: extensions kind: PodSecurityPolicy version: v1beta1 io.k8s.api.extensions.v1beta1.PodSecurityPolicyList: description: 'PodSecurityPolicyList is a list of PodSecurityPolicy objects. Deprecated: use PodSecurityPolicyList from policy API Group instead.' 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/api-conventions.md#resources' type: string items: description: items is a list of schema objects. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: extensions kind: PodSecurityPolicyList version: v1beta1 io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec: description: 'PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.' properties: allowPrivilegeEscalation: description: allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true. type: boolean allowedCapabilities: description: allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities. items: type: string type: array allowedFlexVolumes: description: allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the "volumes" field. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.AllowedFlexVolume' type: array allowedHostPaths: description: allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.AllowedHostPath' type: array allowedUnsafeSysctls: description: 'allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. Examples: e.g. "foo/*" allows "foo/bar", "foo/baz", etc. e.g. "foo.*" allows "foo.bar", "foo.baz", etc.' items: type: string type: array defaultAddCapabilities: description: defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list. items: type: string type: array defaultAllowPrivilegeEscalation: description: defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process. type: boolean forbiddenSysctls: description: 'forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. Examples: e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. e.g. "foo.*" forbids "foo.bar", "foo.baz", etc.' items: type: string type: array fsGroup: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions' description: fsGroup is the strategy that will dictate what fs group is used by the SecurityContext. hostIPC: description: hostIPC determines if the policy allows the use of HostIPC in the pod spec. type: boolean hostNetwork: description: hostNetwork determines if the policy allows the use of HostNetwork in the pod spec. type: boolean hostPID: description: hostPID determines if the policy allows the use of HostPID in the pod spec. type: boolean hostPorts: description: hostPorts determines which host port ranges are allowed to be exposed. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange' type: array privileged: description: privileged determines if a pod can request to be run as privileged. type: boolean readOnlyRootFilesystem: description: readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to. type: boolean requiredDropCapabilities: description: requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added. items: type: string type: array runAsUser: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions' description: runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. seLinux: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions' description: seLinux is the strategy that will dictate the allowable labels that may be set. supplementalGroups: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions' description: supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. volumes: description: volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'. items: type: string type: array required: - seLinux - runAsUser - supplementalGroups - fsGroup io.k8s.api.extensions.v1beta1.ReplicaSet: description: DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec' description: 'Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' status: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus' description: 'Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' x-kubernetes-group-version-kind: - group: extensions kind: ReplicaSet version: v1beta1 io.k8s.api.extensions.v1beta1.ReplicaSetCondition: description: ReplicaSetCondition describes the state of a replica set at a certain point. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: The last time the condition transitioned from one status to another. 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 replica set condition. type: string required: - type - status io.k8s.api.extensions.v1beta1.ReplicaSetList: description: ReplicaSetList is a collection of ReplicaSets. 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/api-conventions.md#resources' type: string items: description: 'List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller' items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' 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/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/api-conventions.md#types-kinds' required: - items x-kubernetes-group-version-kind: - group: extensions kind: ReplicaSetList version: v1beta1 io.k8s.api.extensions.v1beta1.ReplicaSetSpec: description: ReplicaSetSpec is the specification of a ReplicaSet. properties: minReadySeconds: description: Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) format: int32 type: integer replicas: description: 'Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller' format: int32 type: integer selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' template: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: 'Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template' io.k8s.api.extensions.v1beta1.ReplicaSetStatus: description: ReplicaSetStatus represents the current status of a ReplicaSet. properties: availableReplicas: description: The number of available replicas (ready for at least minReadySeconds) for this replica set. format: int32 type: integer conditions: description: Represents the latest available observations of a replica set's current state. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge fullyLabeledReplicas: description: The number of pods that have labels matching the labels of the pod template of the replicaset. format: int32 type: integer observedGeneration: description: ObservedGeneration reflects the generation of the most recently observed ReplicaSet. format: int64 type: integer readyReplicas: description: The number of ready replicas for this replica set. format: int32 type: integer replicas: description: 'Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller' format: int32 type: integer required: - replicas io.k8s.api.extensions.v1beta1.RollbackConfig: description: DEPRECATED. properties: revision: description: The revision to rollback to. If set to 0, rollback to the last revision. format: int64 type: integer io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet: description: Spec to control the desired behavior of daemon set rolling update. properties: maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.' io.k8s.api.extensions.v1beta1.RollingUpdateDeployment: description: Spec to control the desired behavior of rolling update. properties: maxSurge: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.' maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.' io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions: description: 'RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.' properties: ranges: description: ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IDRange' type: array rule: description: rule is the strategy that will dictate the allowable RunAsUser values that may be set. type: string required: - rule io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions: description: 'SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.' properties: rule: description: rule is the strategy that will dictate the allowable labels that may be set. type: string seLinuxOptions: $ref: '#/definitions/io.k8s.api.core.v1.SELinuxOptions' description: 'seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' required: - rule io.k8s.api.extensions.v1beta1.Scale: description: represents a scaling request for a resource. 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/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/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/api-conventions.md#metadata.' spec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec' description: 'defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.' status: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus' description: 'current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.' x-kubernetes-group-version-kind: - group: extensions kind: Scale version: v1beta1 io.k8s.api.extensions.v1beta1.ScaleSpec: description: describes the attributes of a scale subresource properties: replicas: description: desired number of instances for the scaled object. format: int32 type: integer io.k8s.api.extensions.v1beta1.ScaleStatus: description: represents the current status of a scale subresource. properties: replicas: description: actual number of observed instances of the scaled object. format: int32 type: integer selector: additionalProperties: type: string description: 'label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors' type: object targetSelector: description: 'label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' type: string required: - replicas io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions: description: 'SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.' properties: ranges: description: ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs. items: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IDRange' type: array rule: description: rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. type: string io.k8s.api.networking.v1.IPBlock: description: IPBlock describes a particular CIDR (Ex. "192.168.1.1/24") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule. properties: cidr: description: CIDR is a string representing the IP Block Valid examples are "192.168.1.1/24" type: string except: description: Except is a slice of CIDRs that should not be included within an IP Block Valid examples are "192.168.1.1/24" Except values will be rejected if they are outside the CIDR range items: type: string type: array required: - cidr io.k8s.api.networking.v1.NetworkPolicy: description: NetworkPolicy describes what network traffic is allowed for a set of Pods 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec' description: Specification of the desired behavior for this NetworkPolicy. x-kubernetes-group-version-kind: - group: networking.k8s.io kind: NetworkPolicy version: v1 io.k8s.api.networking.v1.NetworkPolicyEgressRule: description: NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8 properties: ports: description: List of destination ports for outgoing traffic. 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 to: description: 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 io.k8s.api.networking.v1.NetworkPolicyIngressRule: description: NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from. properties: from: description: List of sources which should be able to access the 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 sources (traffic not restricted by source). If this field is present and contains at least on item, this rule allows traffic only if the traffic matches at least one item in the from list. items: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer' type: array ports: description: 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 io.k8s.api.networking.v1.NetworkPolicyList: description: NetworkPolicyList is a list of NetworkPolicy objects. 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/api-conventions.md#resources' type: string items: description: Items is a list of schema objects. items: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: networking.k8s.io kind: NetworkPolicyList version: v1 io.k8s.api.networking.v1.NetworkPolicyPeer: description: NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed properties: ipBlock: $ref: '#/definitions/io.k8s.api.networking.v1.IPBlock' description: IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be. namespaceSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces. If PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.' podSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: 'This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods. If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy''s own Namespace.' io.k8s.api.networking.v1.NetworkPolicyPort: description: NetworkPolicyPort describes a port to allow traffic on properties: port: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. protocol: description: The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP. type: string io.k8s.api.networking.v1.NetworkPolicySpec: description: NetworkPolicySpec provides the specification of a NetworkPolicy properties: egress: description: List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8 items: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule' type: array ingress: description: 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 podSelector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. policyTypes: description: List of rule types that the NetworkPolicy relates to. Valid options are Ingress, Egress, or Ingress,Egress. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an Egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 items: type: string type: array required: - podSelector io.k8s.api.policy.v1beta1.AllowedFlexVolume: description: AllowedFlexVolume represents a single Flexvolume that is allowed to be used. properties: driver: description: driver is the name of the Flexvolume driver. type: string required: - driver io.k8s.api.policy.v1beta1.AllowedHostPath: description: AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined. properties: pathPrefix: description: 'pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path. Examples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`' type: string readOnly: description: when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly. type: boolean io.k8s.api.policy.v1beta1.Eviction: description: Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods//evictions. 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/api-conventions.md#resources' type: string deleteOptions: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions' description: DeleteOptions may be provided 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: ObjectMeta describes the pod that is being evicted. x-kubernetes-group-version-kind: - group: policy kind: Eviction version: v1beta1 io.k8s.api.policy.v1beta1.FSGroupStrategyOptions: description: FSGroupStrategyOptions defines the strategy type and options used to create the strategy. properties: ranges: description: ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs. items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.IDRange' type: array rule: description: rule is the strategy that will dictate what FSGroup is used in the SecurityContext. type: string io.k8s.api.policy.v1beta1.HostPortRange: description: HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined. properties: max: description: max is the end of the range, inclusive. format: int32 type: integer min: description: min is the start of the range, inclusive. format: int32 type: integer required: - min - max io.k8s.api.policy.v1beta1.IDRange: description: IDRange provides a min/max of an allowed range of IDs. properties: max: description: max is the end of the range, inclusive. format: int64 type: integer min: description: min is the start of the range, inclusive. format: int64 type: integer required: - min - max io.k8s.api.policy.v1beta1.PodDisruptionBudget: description: PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec' description: Specification of the desired behavior of the PodDisruptionBudget. status: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus' description: Most recently observed status of the PodDisruptionBudget. x-kubernetes-group-version-kind: - group: policy kind: PodDisruptionBudget version: v1beta1 io.k8s.api.policy.v1beta1.PodDisruptionBudgetList: description: PodDisruptionBudgetList is a collection of PodDisruptionBudgets. 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/api-conventions.md#resources' type: string items: items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: policy kind: PodDisruptionBudgetList version: v1beta1 io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec: description: PodDisruptionBudgetSpec is a description of a PodDisruptionBudget. properties: maxUnavailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: An eviction is allowed if at most "maxUnavailable" pods selected by "selector" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with "minAvailable". minAvailable: $ref: '#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString' description: An eviction is allowed if at least "minAvailable" pods selected by "selector" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying "100%". selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Label query over pods whose evictions are managed by the disruption budget. io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus: description: PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system. properties: currentHealthy: description: current number of healthy pods format: int32 type: integer desiredHealthy: description: minimum desired number of healthy pods format: int32 type: integer disruptedPods: additionalProperties: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions. type: object disruptionsAllowed: description: Number of pod disruptions that are currently allowed. format: int32 type: integer expectedPods: description: total number of pods counted by this disruption budget format: int32 type: integer observedGeneration: description: Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status informatio is valid only if observedGeneration equals to PDB's object generation. format: int64 type: integer required: - disruptedPods - disruptionsAllowed - currentHealthy - desiredHealthy - expectedPods io.k8s.api.policy.v1beta1.PodSecurityPolicy: description: PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec' description: spec defines the policy enforced. x-kubernetes-group-version-kind: - group: policy kind: PodSecurityPolicy version: v1beta1 io.k8s.api.policy.v1beta1.PodSecurityPolicyList: description: PodSecurityPolicyList is a list of PodSecurityPolicy objects. 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/api-conventions.md#resources' type: string items: description: items is a list of schema objects. items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: policy kind: PodSecurityPolicyList version: v1beta1 io.k8s.api.policy.v1beta1.PodSecurityPolicySpec: description: PodSecurityPolicySpec defines the policy enforced. properties: allowPrivilegeEscalation: description: allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true. type: boolean allowedCapabilities: description: allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities. items: type: string type: array allowedFlexVolumes: description: allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the "volumes" field. items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume' type: array allowedHostPaths: description: allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used. items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath' type: array allowedUnsafeSysctls: description: 'allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. Examples: e.g. "foo/*" allows "foo/bar", "foo/baz", etc. e.g. "foo.*" allows "foo.bar", "foo.baz", etc.' items: type: string type: array defaultAddCapabilities: description: defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list. items: type: string type: array defaultAllowPrivilegeEscalation: description: defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process. type: boolean forbiddenSysctls: description: 'forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. Examples: e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. e.g. "foo.*" forbids "foo.bar", "foo.baz", etc.' items: type: string type: array fsGroup: $ref: '#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions' description: fsGroup is the strategy that will dictate what fs group is used by the SecurityContext. hostIPC: description: hostIPC determines if the policy allows the use of HostIPC in the pod spec. type: boolean hostNetwork: description: hostNetwork determines if the policy allows the use of HostNetwork in the pod spec. type: boolean hostPID: description: hostPID determines if the policy allows the use of HostPID in the pod spec. type: boolean hostPorts: description: hostPorts determines which host port ranges are allowed to be exposed. items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.HostPortRange' type: array privileged: description: privileged determines if a pod can request to be run as privileged. type: boolean readOnlyRootFilesystem: description: readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to. type: boolean requiredDropCapabilities: description: requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added. items: type: string type: array runAsUser: $ref: '#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions' description: runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. seLinux: $ref: '#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions' description: seLinux is the strategy that will dictate the allowable labels that may be set. supplementalGroups: $ref: '#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions' description: supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. volumes: description: volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'. items: type: string type: array required: - seLinux - runAsUser - supplementalGroups - fsGroup io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions: description: RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. properties: ranges: description: ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs. items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.IDRange' type: array rule: description: rule is the strategy that will dictate the allowable RunAsUser values that may be set. type: string required: - rule io.k8s.api.policy.v1beta1.SELinuxStrategyOptions: description: SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. properties: rule: description: rule is the strategy that will dictate the allowable labels that may be set. type: string seLinuxOptions: $ref: '#/definitions/io.k8s.api.core.v1.SELinuxOptions' description: 'seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' required: - rule io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions: description: SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. properties: ranges: description: ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs. items: $ref: '#/definitions/io.k8s.api.policy.v1beta1.IDRange' type: array rule: description: rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. type: string io.k8s.api.rbac.v1.AggregationRule: description: AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole properties: clusterRoleSelectors: description: ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' type: array io.k8s.api.rbac.v1.ClusterRole: description: ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. properties: aggregationRule: $ref: '#/definitions/io.k8s.api.rbac.v1.AggregationRule' description: AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. rules: description: Rules holds all the PolicyRules for this ClusterRole items: $ref: '#/definitions/io.k8s.api.rbac.v1.PolicyRule' type: array required: - rules x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRole version: v1 io.k8s.api.rbac.v1.ClusterRoleBinding: description: ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. roleRef: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleRef' description: RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. subjects: description: Subjects holds references to the objects the role applies to. items: $ref: '#/definitions/io.k8s.api.rbac.v1.Subject' type: array required: - roleRef x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1 io.k8s.api.rbac.v1.ClusterRoleBindingList: description: ClusterRoleBindingList is a collection of ClusterRoleBindings 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/api-conventions.md#resources' type: string items: description: Items is a list of ClusterRoleBindings items: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleBindingList version: v1 io.k8s.api.rbac.v1.ClusterRoleList: description: ClusterRoleList is a collection of ClusterRoles 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/api-conventions.md#resources' type: string items: description: Items is a list of ClusterRoles items: $ref: '#/definitions/io.k8s.api.rbac.v1.ClusterRole' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleList version: v1 io.k8s.api.rbac.v1.PolicyRule: description: PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. properties: apiGroups: description: APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. items: type: string type: array 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 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 resources: description: Resources is a list of resources this rule applies to. ResourceAll represents all resources. items: type: string type: array verbs: description: Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. items: type: string type: array required: - verbs io.k8s.api.rbac.v1.Role: description: Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. rules: description: Rules holds all the PolicyRules for this Role items: $ref: '#/definitions/io.k8s.api.rbac.v1.PolicyRule' type: array required: - rules x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: Role version: v1 io.k8s.api.rbac.v1.RoleBinding: description: RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. roleRef: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleRef' description: RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. subjects: description: Subjects holds references to the objects the role applies to. items: $ref: '#/definitions/io.k8s.api.rbac.v1.Subject' type: array required: - roleRef x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleBinding version: v1 io.k8s.api.rbac.v1.RoleBindingList: description: RoleBindingList is a collection of RoleBindings 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/api-conventions.md#resources' type: string items: description: Items is a list of RoleBindings items: $ref: '#/definitions/io.k8s.api.rbac.v1.RoleBinding' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleBindingList version: v1 io.k8s.api.rbac.v1.RoleList: description: RoleList is a collection of Roles 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/api-conventions.md#resources' type: string items: description: Items is a list of Roles items: $ref: '#/definitions/io.k8s.api.rbac.v1.Role' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleList version: v1 io.k8s.api.rbac.v1.RoleRef: description: RoleRef contains information that points to the role being used properties: apiGroup: description: APIGroup is the group for the resource being referenced type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - apiGroup - kind - name io.k8s.api.rbac.v1.Subject: description: Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names. properties: apiGroup: description: APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects. type: string kind: description: Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error. type: string name: description: Name of the object being referenced. type: string namespace: description: Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error. type: string required: - kind - name io.k8s.api.rbac.v1alpha1.AggregationRule: description: AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole properties: clusterRoleSelectors: description: ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' type: array io.k8s.api.rbac.v1alpha1.ClusterRole: description: ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. properties: aggregationRule: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.AggregationRule' description: AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. rules: description: Rules holds all the PolicyRules for this ClusterRole items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.PolicyRule' type: array required: - rules x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRole version: v1alpha1 io.k8s.api.rbac.v1alpha1.ClusterRoleBinding: description: ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. roleRef: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleRef' description: RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. subjects: description: Subjects holds references to the objects the role applies to. items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Subject' type: array required: - roleRef x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1alpha1 io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList: description: ClusterRoleBindingList is a collection of ClusterRoleBindings 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/api-conventions.md#resources' type: string items: description: Items is a list of ClusterRoleBindings items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleBindingList version: v1alpha1 io.k8s.api.rbac.v1alpha1.ClusterRoleList: description: ClusterRoleList is a collection of ClusterRoles 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/api-conventions.md#resources' type: string items: description: Items is a list of ClusterRoles items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleList version: v1alpha1 io.k8s.api.rbac.v1alpha1.PolicyRule: description: PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. properties: apiGroups: description: APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. items: type: string type: array 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 This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. 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 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 resources: description: Resources is a list of resources this rule applies to. ResourceAll represents all resources. items: type: string type: array verbs: description: Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. items: type: string type: array required: - verbs io.k8s.api.rbac.v1alpha1.Role: description: Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. rules: description: Rules holds all the PolicyRules for this Role items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.PolicyRule' type: array required: - rules x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: Role version: v1alpha1 io.k8s.api.rbac.v1alpha1.RoleBinding: description: RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. roleRef: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleRef' description: RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. subjects: description: Subjects holds references to the objects the role applies to. items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Subject' type: array required: - roleRef x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleBinding version: v1alpha1 io.k8s.api.rbac.v1alpha1.RoleBindingList: description: RoleBindingList is a collection of RoleBindings 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/api-conventions.md#resources' type: string items: description: Items is a list of RoleBindings items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleBindingList version: v1alpha1 io.k8s.api.rbac.v1alpha1.RoleList: description: RoleList is a collection of Roles 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/api-conventions.md#resources' type: string items: description: Items is a list of Roles items: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleList version: v1alpha1 io.k8s.api.rbac.v1alpha1.RoleRef: description: RoleRef contains information that points to the role being used properties: apiGroup: description: APIGroup is the group for the resource being referenced type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - apiGroup - kind - name io.k8s.api.rbac.v1alpha1.Subject: description: Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names. properties: apiVersion: description: APIVersion holds the API group and version of the referenced subject. Defaults to "v1" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io/v1alpha1" for User and Group subjects. type: string kind: description: Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error. type: string name: description: Name of the object being referenced. type: string namespace: description: Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error. type: string required: - kind - name io.k8s.api.rbac.v1beta1.AggregationRule: description: AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole properties: clusterRoleSelectors: description: ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' type: array io.k8s.api.rbac.v1beta1.ClusterRole: description: ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. properties: aggregationRule: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule' description: AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. rules: description: Rules holds all the PolicyRules for this ClusterRole items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule' type: array required: - rules x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRole version: v1beta1 io.k8s.api.rbac.v1beta1.ClusterRoleBinding: description: ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. roleRef: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleRef' description: RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. subjects: description: Subjects holds references to the objects the role applies to. items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Subject' type: array required: - roleRef x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleBinding version: v1beta1 io.k8s.api.rbac.v1beta1.ClusterRoleBindingList: description: ClusterRoleBindingList is a collection of ClusterRoleBindings 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/api-conventions.md#resources' type: string items: description: Items is a list of ClusterRoleBindings items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleBindingList version: v1beta1 io.k8s.api.rbac.v1beta1.ClusterRoleList: description: ClusterRoleList is a collection of ClusterRoles 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/api-conventions.md#resources' type: string items: description: Items is a list of ClusterRoles items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: ClusterRoleList version: v1beta1 io.k8s.api.rbac.v1beta1.PolicyRule: description: PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. properties: apiGroups: description: APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. items: type: string type: array 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 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 resources: description: Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups. items: type: string type: array verbs: description: Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. items: type: string type: array required: - verbs io.k8s.api.rbac.v1beta1.Role: description: Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. rules: description: Rules holds all the PolicyRules for this Role items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule' type: array required: - rules x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: Role version: v1beta1 io.k8s.api.rbac.v1beta1.RoleBinding: description: RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object's metadata. roleRef: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleRef' description: RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. subjects: description: Subjects holds references to the objects the role applies to. items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Subject' type: array required: - roleRef x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleBinding version: v1beta1 io.k8s.api.rbac.v1beta1.RoleBindingList: description: RoleBindingList is a collection of RoleBindings 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/api-conventions.md#resources' type: string items: description: Items is a list of RoleBindings items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleBindingList version: v1beta1 io.k8s.api.rbac.v1beta1.RoleList: description: RoleList is a collection of Roles 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/api-conventions.md#resources' type: string items: description: Items is a list of Roles items: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard object's metadata. required: - items x-kubernetes-group-version-kind: - group: rbac.authorization.k8s.io kind: RoleList version: v1beta1 io.k8s.api.rbac.v1beta1.RoleRef: description: RoleRef contains information that points to the role being used properties: apiGroup: description: APIGroup is the group for the resource being referenced type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - apiGroup - kind - name io.k8s.api.rbac.v1beta1.Subject: description: Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names. properties: apiGroup: description: APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects. type: string kind: description: Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error. type: string name: description: Name of the object being referenced. type: string namespace: description: Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error. type: string required: - kind - name io.k8s.api.scheduling.v1alpha1.PriorityClass: description: PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer. 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/api-conventions.md#resources' type: string description: description: description is an arbitrary string that usually provides guidelines on when this priority class should be used. type: string globalDefault: description: globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority. type: boolean 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' value: description: The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec. format: int32 type: integer required: - value x-kubernetes-group-version-kind: - group: scheduling.k8s.io kind: PriorityClass version: v1alpha1 io.k8s.api.scheduling.v1alpha1.PriorityClassList: description: PriorityClassList is a collection of priority classes. 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/api-conventions.md#resources' type: string items: description: items is the list of PriorityClasses items: $ref: '#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: scheduling.k8s.io kind: PriorityClassList version: v1alpha1 io.k8s.api.scheduling.v1beta1.PriorityClass: description: PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer. 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/api-conventions.md#resources' type: string description: description: description is an arbitrary string that usually provides guidelines on when this priority class should be used. type: string globalDefault: description: globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority. type: boolean 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' value: description: The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec. format: int32 type: integer required: - value x-kubernetes-group-version-kind: - group: scheduling.k8s.io kind: PriorityClass version: v1beta1 io.k8s.api.scheduling.v1beta1.PriorityClassList: description: PriorityClassList is a collection of priority classes. 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/api-conventions.md#resources' type: string items: description: items is the list of PriorityClasses items: $ref: '#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: scheduling.k8s.io kind: PriorityClassList version: v1beta1 io.k8s.api.settings.v1alpha1.PodPreset: description: PodPreset is a policy resource that defines additional runtime requirements for a Pod. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPresetSpec' x-kubernetes-group-version-kind: - group: settings.k8s.io kind: PodPreset version: v1alpha1 io.k8s.api.settings.v1alpha1.PodPresetList: description: PodPresetList is a list of PodPreset objects. 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/api-conventions.md#resources' type: string items: description: Items is a list of schema objects. items: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: settings.k8s.io kind: PodPresetList version: v1alpha1 io.k8s.api.settings.v1alpha1.PodPresetSpec: description: PodPresetSpec is a description of a pod preset. properties: env: description: Env defines the collection of EnvVar to inject into containers. items: $ref: '#/definitions/io.k8s.api.core.v1.EnvVar' type: array envFrom: description: EnvFrom defines the collection of EnvFromSource to inject into containers. items: $ref: '#/definitions/io.k8s.api.core.v1.EnvFromSource' type: array selector: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector' description: Selector is a label query over a set of resources, in this case pods. Required. volumeMounts: description: VolumeMounts defines the collection of VolumeMount to inject into containers. items: $ref: '#/definitions/io.k8s.api.core.v1.VolumeMount' type: array volumes: description: Volumes defines the collection of Volume to inject into the pod. items: $ref: '#/definitions/io.k8s.api.core.v1.Volume' type: array io.k8s.api.storage.v1.StorageClass: description: 'StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned. StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.' properties: allowVolumeExpansion: description: AllowVolumeExpansion shows whether the storage class allow volume expand type: boolean allowedTopologies: description: Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature. items: $ref: '#/definitions/io.k8s.api.core.v1.TopologySelectorTerm' type: array 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' mountOptions: description: Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. ["ro", "soft"]. Not validated - mount of the PVs will simply fail if one is invalid. items: type: string type: array parameters: additionalProperties: type: string description: Parameters holds the parameters for the provisioner that should create volumes of this storage class. type: object provisioner: description: Provisioner indicates the type of the provisioner. type: string reclaimPolicy: description: Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete. type: string volumeBindingMode: description: VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature. type: string required: - provisioner x-kubernetes-group-version-kind: - group: storage.k8s.io kind: StorageClass version: v1 io.k8s.api.storage.v1.StorageClassList: description: StorageClassList is a collection of storage classes. 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/api-conventions.md#resources' type: string items: description: Items is the list of StorageClasses items: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: storage.k8s.io kind: StorageClassList version: v1 io.k8s.api.storage.v1alpha1.VolumeAttachment: description: 'VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. VolumeAttachment objects are non-namespaced.' 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/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/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/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec' description: Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system. status: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus' description: Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher. required: - spec x-kubernetes-group-version-kind: - group: storage.k8s.io kind: VolumeAttachment version: v1alpha1 io.k8s.api.storage.v1alpha1.VolumeAttachmentList: description: VolumeAttachmentList is a collection of VolumeAttachment objects. 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/api-conventions.md#resources' type: string items: description: Items is the list of VolumeAttachments items: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: storage.k8s.io kind: VolumeAttachmentList version: v1alpha1 io.k8s.api.storage.v1alpha1.VolumeAttachmentSource: description: VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. properties: persistentVolumeName: description: Name of the persistent volume to attach. type: string io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec: description: VolumeAttachmentSpec is the specification of a VolumeAttachment request. properties: attacher: description: Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName(). type: string nodeName: description: The node that the volume should be attached to. type: string source: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentSource' description: Source represents the volume that should be attached. required: - attacher - source - nodeName io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus: description: VolumeAttachmentStatus is the status of a VolumeAttachment request. properties: attachError: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeError' description: The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. attached: description: Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. type: boolean attachmentMetadata: additionalProperties: type: string description: Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. type: object detachError: $ref: '#/definitions/io.k8s.api.storage.v1alpha1.VolumeError' description: The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher. required: - attached io.k8s.api.storage.v1alpha1.VolumeError: description: VolumeError captures an error encountered during a volume operation. properties: message: description: String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information. type: string time: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Time the error was encountered. io.k8s.api.storage.v1beta1.StorageClass: description: 'StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned. StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.' properties: allowVolumeExpansion: description: AllowVolumeExpansion shows whether the storage class allow volume expand type: boolean allowedTopologies: description: Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature. items: $ref: '#/definitions/io.k8s.api.core.v1.TopologySelectorTerm' type: array 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' mountOptions: description: Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. ["ro", "soft"]. Not validated - mount of the PVs will simply fail if one is invalid. items: type: string type: array parameters: additionalProperties: type: string description: Parameters holds the parameters for the provisioner that should create volumes of this storage class. type: object provisioner: description: Provisioner indicates the type of the provisioner. type: string reclaimPolicy: description: Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete. type: string volumeBindingMode: description: VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature. type: string required: - provisioner x-kubernetes-group-version-kind: - group: storage.k8s.io kind: StorageClass version: v1beta1 io.k8s.api.storage.v1beta1.StorageClassList: description: StorageClassList is a collection of storage classes. 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/api-conventions.md#resources' type: string items: description: Items is the list of StorageClasses items: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: storage.k8s.io kind: StorageClassList version: v1beta1 io.k8s.api.storage.v1beta1.VolumeAttachment: description: 'VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. VolumeAttachment objects are non-namespaced.' 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/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/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/api-conventions.md#metadata' spec: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec' description: Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system. status: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus' description: Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher. required: - spec x-kubernetes-group-version-kind: - group: storage.k8s.io kind: VolumeAttachment version: v1beta1 io.k8s.api.storage.v1beta1.VolumeAttachmentList: description: VolumeAttachmentList is a collection of VolumeAttachment objects. 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/api-conventions.md#resources' type: string items: description: Items is the list of VolumeAttachments items: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment' 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/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/api-conventions.md#metadata' required: - items x-kubernetes-group-version-kind: - group: storage.k8s.io kind: VolumeAttachmentList version: v1beta1 io.k8s.api.storage.v1beta1.VolumeAttachmentSource: description: VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set. properties: persistentVolumeName: description: Name of the persistent volume to attach. type: string io.k8s.api.storage.v1beta1.VolumeAttachmentSpec: description: VolumeAttachmentSpec is the specification of a VolumeAttachment request. properties: attacher: description: Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName(). type: string nodeName: description: The node that the volume should be attached to. type: string source: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource' description: Source represents the volume that should be attached. required: - attacher - source - nodeName io.k8s.api.storage.v1beta1.VolumeAttachmentStatus: description: VolumeAttachmentStatus is the status of a VolumeAttachment request. properties: attachError: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeError' description: The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. attached: description: Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. type: boolean attachmentMetadata: additionalProperties: type: string description: Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher. type: object detachError: $ref: '#/definitions/io.k8s.api.storage.v1beta1.VolumeError' description: The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher. required: - attached io.k8s.api.storage.v1beta1.VolumeError: description: VolumeError captures an error encountered during a volume operation. properties: message: description: String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information. type: string time: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Time the error was encountered. io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition: description: CustomResourceColumnDefinition specifies a column for server side printing. properties: JSONPath: description: JSONPath is a simple JSON path, i.e. with array notation. type: string description: description: description is a human readable description of this column. type: string format: description: format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more. type: string name: description: name is a human readable name for the column. type: string priority: description: priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority. format: int32 type: integer type: description: type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more. type: string required: - name - type - JSONPath io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition: description: CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>. 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec' description: Spec describes how the user wants the resources to appear status: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus' description: Status indicates the actual state of the CustomResourceDefinition x-kubernetes-group-version-kind: - group: apiextensions.k8s.io kind: CustomResourceDefinition version: v1beta1 io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition: description: CustomResourceDefinitionCondition contains details for the current condition of this pod. properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. message: description: Human-readable message indicating details about last transition. type: string reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. Can be True, False, Unknown. type: string type: description: Type is the type of the condition. type: string required: - type - status io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList: description: CustomResourceDefinitionList is a list of CustomResourceDefinition objects. 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/api-conventions.md#resources' type: string items: description: Items individual CustomResourceDefinitions items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: apiextensions.k8s.io kind: CustomResourceDefinitionList version: v1beta1 io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames: description: CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition properties: categories: description: Categories is a list of grouped resources custom resources belong to (e.g. 'all') items: type: string type: array kind: description: Kind is the serialized kind of the resource. It is normally CamelCase and singular. type: string listKind: description: ListKind is the serialized kind of the list for this resource. Defaults to List. type: string plural: description: 'Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.' type: string shortNames: description: ShortNames are short names for the resource. It must be all lowercase. items: type: string type: array singular: description: Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased type: string required: - plural - kind io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec: description: CustomResourceDefinitionSpec describes how a user wants their resource to appear properties: additionalPrinterColumns: description: AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition' type: array group: description: Group is the group this resource belongs in type: string names: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames' description: Names are the names used to describe this custom resource scope: description: Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced type: string subresources: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources' description: Subresources describes the subresources for CustomResources validation: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation' description: Validation describes the validation methods for CustomResources version: description: 'Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use `Versions`.' type: string versions: description: 'Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.' items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion' type: array required: - group - names - scope io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus: description: CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition properties: acceptedNames: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames' description: AcceptedNames are the names that are actually being used to serve discovery They may be different than the names in spec. conditions: description: Conditions indicate state for particular aspects of a CustomResourceDefinition items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition' type: array storedVersions: description: StoredVersions are all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so the migration controller can first finish a migration to another version (i.e. that no old objects are left in the storage), and then remove the rest of the versions from this list. None of the versions in this list can be removed from the spec.Versions field. items: type: string type: array required: - conditions - acceptedNames - storedVersions io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion: properties: name: description: "Name is the version name, e.g. \u201Cv1\u201D, \u201Cv2beta1\u201D\ , etc." type: string served: description: Served is a flag enabling/disabling this version from being served via REST APIs type: boolean storage: description: Storage flags the version as storage version. There must be exactly one flagged as storage version. type: boolean required: - name - served - storage io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale: description: CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources. properties: labelSelectorPath: description: LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. Must be set to work with HPA. If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string. type: string specReplicasPath: description: SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET. type: string statusReplicasPath: description: StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource will default to 0. type: string required: - specReplicasPath - statusReplicasPath io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus: description: CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources: description: CustomResourceSubresources defines the status and scale subresources for CustomResources. properties: scale: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale' description: Scale denotes the scale subresource for CustomResources status: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus' description: Status denotes the status subresource for CustomResources io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation: description: CustomResourceValidation is a list of validation methods for CustomResources. properties: openAPIV3Schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' description: OpenAPIV3Schema is the OpenAPI v3 schema to be validated against. io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation: description: ExternalDocumentation allows referencing an external resource for extended documentation. properties: description: type: string url: type: string io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON: description: 'JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.' properties: Raw: format: byte type: string required: - Raw io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps: description: JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). properties: $ref: type: string $schema: type: string additionalItems: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool' additionalProperties: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool' allOf: items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' type: array anyOf: items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' type: array default: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON' definitions: additionalProperties: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' type: object dependencies: additionalProperties: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray' type: object description: type: string enum: items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON' type: array example: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON' exclusiveMaximum: type: boolean exclusiveMinimum: type: boolean externalDocs: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation' format: type: string id: type: string items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' maxItems: format: int64 type: integer maxLength: format: int64 type: integer maxProperties: format: int64 type: integer maximum: format: double type: number minItems: format: int64 type: integer minLength: format: int64 type: integer minProperties: format: int64 type: integer minimum: format: double type: number multipleOf: format: double type: number not: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' oneOf: items: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' type: array pattern: type: string patternProperties: additionalProperties: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' type: object properties: additionalProperties: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' type: object required: items: type: string type: array title: type: string type: type: string uniqueItems: type: boolean io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool: description: JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. properties: Allows: type: boolean Schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' required: - Allows - Schema io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray: description: JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. properties: Property: items: type: string type: array Schema: $ref: '#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps' required: - Schema - Property io.k8s.apimachinery.pkg.api.resource.Quantity: description: "Quantity is a fixed-point representation of a number. It provides\ \ convenient marshaling/unmarshaling in JSON and YAML, in addition to String()\ \ and Int64() accessors.\n\nThe serialization format is:\n\n \ \ ::= \n (Note that may be empty, from the\ \ \"\" case in .)\n ::= 0 | 1 | ... | 9 \ \ ::= | ::= | .\ \ | . | . ::= \"+\" | \"-\" \ \ ::= | ::= | \ \ | ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International\ \ System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\ \ ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000\ \ = 1k; I didn't choose the capitalization.)\n ::= \"e\" \ \ | \"E\" \n\nNo matter which of the three exponent forms is used,\ \ no quantity may represent a number greater than 2^63-1 in magnitude, nor may\ \ it have more than 3 decimal places. Numbers larger or more precise will be\ \ capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended\ \ in the future if we require larger or smaller quantities.\n\nWhen a Quantity\ \ is parsed from a string, it will remember the type of suffix it had, and will\ \ use the same type again when it is serialized.\n\nBefore serializing, Quantity\ \ will be put in \"canonical form\". This means that Exponent/suffix will be\ \ adjusted up or down (with a corresponding increase or decrease in Mantissa)\ \ such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n\ \ c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted\ \ unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"\ 1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNOTE: We reserve the right\ \ to amend this canonical format, perhaps to\n allow 1.5 to be canonical.\n\ \ or after March 2015.\n\nNote that the quantity will NEVER be internally represented\ \ by a floating point number. That is the whole point of this exercise.\n\n\ Non-canonical values will still parse as long as they are well formed, but will\ \ be re-emitted in their canonical form. (So always use canonical form, or don't\ \ diff.)\n\nThis format is intended to make it difficult to use these numbers\ \ without writing some sort of special handling code in the hopes that that\ \ will cause implementors to also use a fixed point implementation." type: string io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup: description: APIGroup contains the name, the supported versions, and the preferred version of a group. 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/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/api-conventions.md#types-kinds' type: string name: description: name is the name of the group. type: string preferredVersion: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery' description: preferredVersion is the version preferred by the API server, which probably is the storage version. serverAddressByClientCIDRs: description: 'a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.' items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR' type: array versions: description: versions are the versions supported in this group. items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery' type: array required: - name - versions x-kubernetes-group-version-kind: - group: '' kind: APIGroup version: v1 io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList: description: APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. 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/api-conventions.md#resources' type: string groups: description: groups is a list of APIGroup. items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup' 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/api-conventions.md#types-kinds' type: string required: - groups x-kubernetes-group-version-kind: - group: '' kind: APIGroupList version: v1 io.k8s.apimachinery.pkg.apis.meta.v1.APIResource: description: APIResource specifies the name of a resource and whether it is namespaced. properties: categories: description: categories is a list of the grouped resources this resource belongs to (e.g. 'all') items: type: string type: array 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".' type: string kind: description: kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') type: string name: description: name is the plural name of the resource. type: string namespaced: description: namespaced indicates if a resource is namespaced or not. type: boolean shortNames: description: shortNames is a list of suggested short names of the resource. items: type: string type: array 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. type: string verbs: description: verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy) items: type: string type: array version: description: 'version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource''s group)".' type: string required: - name - singularName - namespaced - kind - verbs io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList: description: APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced. 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/api-conventions.md#resources' type: string groupVersion: description: groupVersion is the group and version this APIResourceList is for. 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/api-conventions.md#types-kinds' type: string resources: description: resources contains the name of the resources and if they are namespaced. items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource' type: array required: - groupVersion - resources x-kubernetes-group-version-kind: - group: '' kind: APIResourceList version: v1 io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions: description: APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API. 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/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/api-conventions.md#types-kinds' type: string serverAddressByClientCIDRs: description: 'a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.' items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR' type: array versions: description: versions are the api versions that are available. items: type: string type: array required: - versions - serverAddressByClientCIDRs x-kubernetes-group-version-kind: - group: '' kind: APIVersions version: v1 io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions: description: DeleteOptions may be provided when deleting an API object. 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/api-conventions.md#resources' type: string 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. format: int64 type: integer 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/api-conventions.md#types-kinds' type: string orphanDependents: 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.' type: boolean preconditions: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions' description: Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned. propagationPolicy: 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.' type: string x-kubernetes-group-version-kind: - group: '' kind: DeleteOptions version: v1 - group: admission.k8s.io kind: DeleteOptions version: v1beta1 - group: admissionregistration.k8s.io kind: DeleteOptions version: v1alpha1 - group: admissionregistration.k8s.io kind: DeleteOptions version: v1beta1 - group: apiextensions.k8s.io kind: DeleteOptions version: v1beta1 - group: apiregistration.k8s.io kind: DeleteOptions version: v1 - group: apiregistration.k8s.io kind: DeleteOptions version: v1beta1 - group: apps kind: DeleteOptions version: v1 - group: apps kind: DeleteOptions version: v1beta1 - group: apps kind: DeleteOptions version: v1beta2 - group: authentication.k8s.io kind: DeleteOptions version: v1 - group: authentication.k8s.io kind: DeleteOptions version: v1beta1 - group: authorization.k8s.io kind: DeleteOptions version: v1 - group: authorization.k8s.io kind: DeleteOptions version: v1beta1 - group: autoscaling kind: DeleteOptions version: v1 - group: autoscaling kind: DeleteOptions version: v2beta1 - group: batch kind: DeleteOptions version: v1 - group: batch kind: DeleteOptions version: v1beta1 - group: batch kind: DeleteOptions version: v2alpha1 - group: certificates.k8s.io kind: DeleteOptions version: v1beta1 - group: events.k8s.io kind: DeleteOptions version: v1beta1 - group: extensions kind: DeleteOptions version: v1beta1 - group: imagepolicy.k8s.io kind: DeleteOptions version: v1alpha1 - group: networking.k8s.io kind: DeleteOptions version: v1 - group: policy kind: DeleteOptions version: v1beta1 - group: rbac.authorization.k8s.io kind: DeleteOptions version: v1 - group: rbac.authorization.k8s.io kind: DeleteOptions version: v1alpha1 - group: rbac.authorization.k8s.io kind: DeleteOptions version: v1beta1 - group: scheduling.k8s.io kind: DeleteOptions version: v1alpha1 - group: scheduling.k8s.io kind: DeleteOptions version: v1beta1 - group: settings.k8s.io kind: DeleteOptions version: v1alpha1 - group: storage.k8s.io kind: DeleteOptions version: v1 - group: storage.k8s.io kind: DeleteOptions version: v1alpha1 - group: storage.k8s.io kind: DeleteOptions version: v1beta1 io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery: description: GroupVersion contains the "group/version" and "version" string of a version. It is made a struct to keep extensibility. properties: groupVersion: description: groupVersion specifies the API group and version in the form "group/version" type: string version: description: version specifies the version in the form of "version". This is to save the clients the trouble of splitting the GroupVersion. type: string required: - groupVersion - version io.k8s.apimachinery.pkg.apis.meta.v1.Initializer: description: Initializer is information about an initializer that has not yet completed. properties: name: description: name of the process that is responsible for initializing this object. type: string required: - name io.k8s.apimachinery.pkg.apis.meta.v1.Initializers: description: Initializers tracks the progress of initialization. properties: pending: description: Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients. items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer' type: array x-kubernetes-patch-merge-key: name x-kubernetes-patch-strategy: merge result: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status' description: If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion. required: - pending io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector: description: A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement' type: array matchLabels: additionalProperties: type: string description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. type: object io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement: description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string x-kubernetes-patch-merge-key: key x-kubernetes-patch-strategy: merge operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. items: type: string type: array required: - key - operator io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta: description: ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}. properties: continue: description: continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response. type: string resourceVersion: description: 'String that identifies the server''s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' type: string selfLink: description: selfLink is a URL representing this object. Populated by the system. Read-only. type: string io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime: description: MicroTime is version of Time with microsecond level precision. format: date-time type: string io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta: description: ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. properties: annotations: additionalProperties: type: string description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' type: object clusterName: description: The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request. type: string creationTimestamp: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: 'CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' deletionGracePeriodSeconds: description: Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only. format: int64 type: integer deletionTimestamp: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: 'DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' finalizers: description: Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. items: type: string type: array x-kubernetes-patch-strategy: merge generateName: description: 'GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency' type: string generation: description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. format: int64 type: integer initializers: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers' description: 'An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven''t explicitly asked to observe uninitialized objects. When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.' labels: additionalProperties: type: string description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' type: object 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: http://kubernetes.io/docs/user-guide/identifiers#names' type: string namespace: description: 'Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces' type: string ownerReferences: description: List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller. items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference' type: array x-kubernetes-patch-merge-key: uid x-kubernetes-patch-strategy: merge resourceVersion: description: 'An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency' type: string selfLink: description: SelfLink is a URL representing this object. Populated by the system. Read-only. type: string uid: description: 'UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' type: string io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference: description: OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field. properties: apiVersion: description: API version of the referent. type: string blockOwnerDeletion: description: If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. type: boolean controller: description: If true, this reference points to the managing controller. type: boolean kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' type: string uid: description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' type: string required: - apiVersion - kind - name - uid io.k8s.apimachinery.pkg.apis.meta.v1.Patch: description: Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions: description: Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out. properties: uid: description: Specifies the target UID. type: string io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR: description: ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match. properties: clientCIDR: description: The CIDR with which clients can match their IP to figure out the server address that they should use. type: string serverAddress: description: Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port. type: string required: - clientCIDR - serverAddress io.k8s.apimachinery.pkg.apis.meta.v1.Status: description: Status is a return value for calls that don't return other objects. 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/api-conventions.md#resources' type: string code: description: Suggested HTTP return code for this status, 0 if not set. format: int32 type: integer 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. 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/api-conventions.md#types-kinds' type: string message: description: A human-readable description of the status of this operation. 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/api-conventions.md#types-kinds' reason: description: A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it. type: string status: description: 'Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status' type: string x-kubernetes-group-version-kind: - group: '' kind: Status version: v1 io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause: description: StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered. properties: field: description: "The field of the resource that has caused this error, as named\ \ by its JSON serialization. May include dot and postfix notation for nested\ \ attributes. Arrays are zero-indexed. Fields may appear more than once\ \ in an array of causes due to fields having multiple errors. Optional.\n\ \nExamples:\n \"name\" - the field \"name\" on the current resource\n \ \ \"items[0].name\" - the field \"name\" on the first array entry in \"\ items\"" type: string message: description: A human-readable description of the cause of the error. This field may be presented as-is to a reader. type: string reason: description: A machine-readable description of the cause of the error. If this value is empty there is no information available. type: string io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails: description: StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined. properties: causes: description: The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes. items: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause' type: array group: description: The group attribute of the resource associated with the status StatusReason. type: string kind: description: 'The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' type: string name: description: The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described). type: string retryAfterSeconds: description: If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action. format: int32 type: integer uid: description: 'UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids' type: string io.k8s.apimachinery.pkg.apis.meta.v1.Time: description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. format: date-time type: string io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent: description: Event represents a single event to a watched resource. properties: object: $ref: '#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension' description: "Object is:\n * If Type is Added or Modified: the new state of\ \ the object.\n * If Type is Deleted: the state of the object immediately\ \ before deletion.\n * If Type is Error: *Status is recommended; other types\ \ may make sense\n depending on context." type: type: string required: - type - object x-kubernetes-group-version-kind: - group: '' kind: WatchEvent version: v1 - group: admission.k8s.io kind: WatchEvent version: v1beta1 - group: admissionregistration.k8s.io kind: WatchEvent version: v1alpha1 - group: admissionregistration.k8s.io kind: WatchEvent version: v1beta1 - group: apiextensions.k8s.io kind: WatchEvent version: v1beta1 - group: apiregistration.k8s.io kind: WatchEvent version: v1 - group: apiregistration.k8s.io kind: WatchEvent version: v1beta1 - group: apps kind: WatchEvent version: v1 - group: apps kind: WatchEvent version: v1beta1 - group: apps kind: WatchEvent version: v1beta2 - group: authentication.k8s.io kind: WatchEvent version: v1 - group: authentication.k8s.io kind: WatchEvent version: v1beta1 - group: authorization.k8s.io kind: WatchEvent version: v1 - group: authorization.k8s.io kind: WatchEvent version: v1beta1 - group: autoscaling kind: WatchEvent version: v1 - group: autoscaling kind: WatchEvent version: v2beta1 - group: batch kind: WatchEvent version: v1 - group: batch kind: WatchEvent version: v1beta1 - group: batch kind: WatchEvent version: v2alpha1 - group: certificates.k8s.io kind: WatchEvent version: v1beta1 - group: events.k8s.io kind: WatchEvent version: v1beta1 - group: extensions kind: WatchEvent version: v1beta1 - group: imagepolicy.k8s.io kind: WatchEvent version: v1alpha1 - group: networking.k8s.io kind: WatchEvent version: v1 - group: policy kind: WatchEvent version: v1beta1 - group: rbac.authorization.k8s.io kind: WatchEvent version: v1 - group: rbac.authorization.k8s.io kind: WatchEvent version: v1alpha1 - group: rbac.authorization.k8s.io kind: WatchEvent version: v1beta1 - group: scheduling.k8s.io kind: WatchEvent version: v1alpha1 - group: scheduling.k8s.io kind: WatchEvent version: v1beta1 - group: settings.k8s.io kind: WatchEvent version: v1alpha1 - group: storage.k8s.io kind: WatchEvent version: v1 - group: storage.k8s.io kind: WatchEvent version: v1alpha1 - group: storage.k8s.io kind: WatchEvent version: v1beta1 io.k8s.apimachinery.pkg.runtime.RawExtension: description: "RawExtension is used to hold extensions in external versions.\n\n\ To use this, make a field which has RawExtension as its type in your external,\ \ versioned struct, and Object in your internal struct. You also need to register\ \ your various plugin types.\n\n// Internal package: type MyAPIObject struct\ \ {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"\ myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n\ }\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\"\ ,inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA\ \ struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON\ \ will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\"\ :\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\"\ ,\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the\ \ serialized data into your external MyAPIObject. That causes the raw JSON to\ \ be stored, but not unpacked. The next step is to copy (using pkg/conversion)\ \ into the internal struct. The runtime package's DefaultScheme has conversion\ \ functions installed which will unpack the JSON stored in RawExtension, turning\ \ it into the correct object type, and storing it in the Object. (TODO: In the\ \ case where the object is of an unknown type, a runtime.Unknown object will\ \ be created and stored.)" properties: Raw: description: Raw is the underlying serialization of this object. format: byte type: string required: - Raw io.k8s.apimachinery.pkg.util.intstr.IntOrString: description: IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number. format: int-or-string type: string io.k8s.apimachinery.pkg.version.Info: description: Info contains versioning information. how we'll want to distribute that information. properties: buildDate: type: string compiler: type: string gitCommit: type: string gitTreeState: type: string gitVersion: type: string goVersion: type: string major: type: string minor: type: string platform: type: string required: - major - minor - gitVersion - gitCommit - gitTreeState - buildDate - goVersion - compiler - platform io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService: description: APIService represents a server for a particular GroupVersion. Name must be "version.group". 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec' description: Spec contains information for locating and communicating with a server status: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus' description: Status contains derived information about an API server x-kubernetes-group-version-kind: - group: apiregistration.k8s.io kind: APIService version: v1 io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition: properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. message: description: Human-readable message indicating details about last transition. type: string reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. Can be True, False, Unknown. type: string type: description: Type is the type of the condition. type: string required: - type - status io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList: description: APIServiceList is a list of APIService objects. 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/api-conventions.md#resources' type: string items: items: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: apiregistration.k8s.io kind: APIServiceList version: v1 io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec: description: APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification. properties: caBundle: description: CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. format: byte type: string group: description: Group is the API group name this server hosts type: string groupPriorityMinimum: description: 'GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We''d recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s' format: int32 type: integer insecureSkipTLSVerify: description: InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead. type: boolean service: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference' description: Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled. version: description: Version is the API version this server hosts. For example, "v1" type: string versionPriority: description: 'VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it''s inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.' format: int32 type: integer required: - service - groupPriorityMinimum - versionPriority io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus: description: APIServiceStatus contains derived information about an API server properties: conditions: description: Current service state of apiService. items: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference: description: ServiceReference holds a reference to Service.legacy.k8s.io properties: name: description: Name is the name of the service type: string namespace: description: Namespace is the namespace of the service type: string io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService: description: APIService represents a server for a particular GroupVersion. Name must be "version.group". 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/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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' spec: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec' description: Spec contains information for locating and communicating with a server status: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus' description: Status contains derived information about an API server x-kubernetes-group-version-kind: - group: apiregistration.k8s.io kind: APIService version: v1beta1 io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition: properties: lastTransitionTime: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time' description: Last time the condition transitioned from one status to another. message: description: Human-readable message indicating details about last transition. type: string reason: description: Unique, one-word, CamelCase reason for the condition's last transition. type: string status: description: Status is the status of the condition. Can be True, False, Unknown. type: string type: description: Type is the type of the condition. type: string required: - type - status io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList: description: APIServiceList is a list of APIService objects. 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/api-conventions.md#resources' type: string items: items: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' required: - items x-kubernetes-group-version-kind: - group: apiregistration.k8s.io kind: APIServiceList version: v1beta1 io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec: description: APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification. properties: caBundle: description: CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. format: byte type: string group: description: Group is the API group name this server hosts type: string groupPriorityMinimum: description: 'GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We''d recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s' format: int32 type: integer insecureSkipTLSVerify: description: InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead. type: boolean service: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference' description: Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled. version: description: Version is the API version this server hosts. For example, "v1" type: string versionPriority: description: 'VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it''s inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.' format: int32 type: integer required: - service - groupPriorityMinimum - versionPriority io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus: description: APIServiceStatus contains derived information about an API server properties: conditions: description: Current service state of apiService. items: $ref: '#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition' type: array x-kubernetes-patch-merge-key: type x-kubernetes-patch-strategy: merge io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference: description: ServiceReference holds a reference to Service.legacy.k8s.io properties: name: description: Name is the name of the service type: string namespace: description: Namespace is the namespace of the service type: string io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.Affinity: $ref: '#/definitions/io.k8s.api.core.v1.Affinity' description: Deprecated. Please use io.k8s.api.core.v1.Affinity instead. io.k8s.kubernetes.pkg.api.v1.AttachedVolume: $ref: '#/definitions/io.k8s.api.core.v1.AttachedVolume' description: Deprecated. Please use io.k8s.api.core.v1.AttachedVolume instead. io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.AzureDiskVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.AzureFileVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.Binding: $ref: '#/definitions/io.k8s.api.core.v1.Binding' description: Deprecated. Please use io.k8s.api.core.v1.Binding instead. io.k8s.kubernetes.pkg.api.v1.Capabilities: $ref: '#/definitions/io.k8s.api.core.v1.Capabilities' description: Deprecated. Please use io.k8s.api.core.v1.Capabilities instead. io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.CephFSVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.CephFSVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.CinderVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.CinderVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.ComponentCondition: $ref: '#/definitions/io.k8s.api.core.v1.ComponentCondition' description: Deprecated. Please use io.k8s.api.core.v1.ComponentCondition instead. io.k8s.kubernetes.pkg.api.v1.ComponentStatus: $ref: '#/definitions/io.k8s.api.core.v1.ComponentStatus' description: Deprecated. Please use io.k8s.api.core.v1.ComponentStatus instead. io.k8s.kubernetes.pkg.api.v1.ComponentStatusList: $ref: '#/definitions/io.k8s.api.core.v1.ComponentStatusList' description: Deprecated. Please use io.k8s.api.core.v1.ComponentStatusList instead. io.k8s.kubernetes.pkg.api.v1.ConfigMap: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMap' description: Deprecated. Please use io.k8s.api.core.v1.ConfigMap instead. io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource' description: Deprecated. Please use io.k8s.api.core.v1.ConfigMapEnvSource instead. io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector' description: Deprecated. Please use io.k8s.api.core.v1.ConfigMapKeySelector instead. io.k8s.kubernetes.pkg.api.v1.ConfigMapList: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapList' description: Deprecated. Please use io.k8s.api.core.v1.ConfigMapList instead. io.k8s.kubernetes.pkg.api.v1.ConfigMapProjection: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapProjection' description: Deprecated. Please use io.k8s.api.core.v1.ConfigMapProjection instead. io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.ConfigMapVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.Container: $ref: '#/definitions/io.k8s.api.core.v1.Container' description: Deprecated. Please use io.k8s.api.core.v1.Container instead. io.k8s.kubernetes.pkg.api.v1.ContainerImage: $ref: '#/definitions/io.k8s.api.core.v1.ContainerImage' description: Deprecated. Please use io.k8s.api.core.v1.ContainerImage instead. io.k8s.kubernetes.pkg.api.v1.ContainerPort: $ref: '#/definitions/io.k8s.api.core.v1.ContainerPort' description: Deprecated. Please use io.k8s.api.core.v1.ContainerPort instead. io.k8s.kubernetes.pkg.api.v1.ContainerState: $ref: '#/definitions/io.k8s.api.core.v1.ContainerState' description: Deprecated. Please use io.k8s.api.core.v1.ContainerState instead. io.k8s.kubernetes.pkg.api.v1.ContainerStateRunning: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStateRunning' description: Deprecated. Please use io.k8s.api.core.v1.ContainerStateRunning instead. io.k8s.kubernetes.pkg.api.v1.ContainerStateTerminated: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStateTerminated' description: Deprecated. Please use io.k8s.api.core.v1.ContainerStateTerminated instead. io.k8s.kubernetes.pkg.api.v1.ContainerStateWaiting: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStateWaiting' description: Deprecated. Please use io.k8s.api.core.v1.ContainerStateWaiting instead. io.k8s.kubernetes.pkg.api.v1.ContainerStatus: $ref: '#/definitions/io.k8s.api.core.v1.ContainerStatus' description: Deprecated. Please use io.k8s.api.core.v1.ContainerStatus instead. io.k8s.kubernetes.pkg.api.v1.DaemonEndpoint: $ref: '#/definitions/io.k8s.api.core.v1.DaemonEndpoint' description: Deprecated. Please use io.k8s.api.core.v1.DaemonEndpoint instead. io.k8s.kubernetes.pkg.api.v1.DownwardAPIProjection: $ref: '#/definitions/io.k8s.api.core.v1.DownwardAPIProjection' description: Deprecated. Please use io.k8s.api.core.v1.DownwardAPIProjection instead. io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile: $ref: '#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile' description: Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeFile instead. io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.EmptyDirVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.EndpointAddress: $ref: '#/definitions/io.k8s.api.core.v1.EndpointAddress' description: Deprecated. Please use io.k8s.api.core.v1.EndpointAddress instead. io.k8s.kubernetes.pkg.api.v1.EndpointPort: $ref: '#/definitions/io.k8s.api.core.v1.EndpointPort' description: Deprecated. Please use io.k8s.api.core.v1.EndpointPort instead. io.k8s.kubernetes.pkg.api.v1.EndpointSubset: $ref: '#/definitions/io.k8s.api.core.v1.EndpointSubset' description: Deprecated. Please use io.k8s.api.core.v1.EndpointSubset instead. io.k8s.kubernetes.pkg.api.v1.Endpoints: $ref: '#/definitions/io.k8s.api.core.v1.Endpoints' description: Deprecated. Please use io.k8s.api.core.v1.Endpoints instead. io.k8s.kubernetes.pkg.api.v1.EndpointsList: $ref: '#/definitions/io.k8s.api.core.v1.EndpointsList' description: Deprecated. Please use io.k8s.api.core.v1.EndpointsList instead. io.k8s.kubernetes.pkg.api.v1.EnvFromSource: $ref: '#/definitions/io.k8s.api.core.v1.EnvFromSource' description: Deprecated. Please use io.k8s.api.core.v1.EnvFromSource instead. io.k8s.kubernetes.pkg.api.v1.EnvVar: $ref: '#/definitions/io.k8s.api.core.v1.EnvVar' description: Deprecated. Please use io.k8s.api.core.v1.EnvVar instead. io.k8s.kubernetes.pkg.api.v1.EnvVarSource: $ref: '#/definitions/io.k8s.api.core.v1.EnvVarSource' description: Deprecated. Please use io.k8s.api.core.v1.EnvVarSource instead. io.k8s.kubernetes.pkg.api.v1.Event: $ref: '#/definitions/io.k8s.api.core.v1.Event' description: Deprecated. Please use io.k8s.api.core.v1.Event instead. io.k8s.kubernetes.pkg.api.v1.EventList: $ref: '#/definitions/io.k8s.api.core.v1.EventList' description: Deprecated. Please use io.k8s.api.core.v1.EventList instead. io.k8s.kubernetes.pkg.api.v1.EventSource: $ref: '#/definitions/io.k8s.api.core.v1.EventSource' description: Deprecated. Please use io.k8s.api.core.v1.EventSource instead. io.k8s.kubernetes.pkg.api.v1.ExecAction: $ref: '#/definitions/io.k8s.api.core.v1.ExecAction' description: Deprecated. Please use io.k8s.api.core.v1.ExecAction instead. io.k8s.kubernetes.pkg.api.v1.FCVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.FCVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.FCVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.FlexVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.FlexVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.FlockerVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.FlockerVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.GCEPersistentDiskVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.GitRepoVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.GlusterfsVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.HTTPGetAction: $ref: '#/definitions/io.k8s.api.core.v1.HTTPGetAction' description: Deprecated. Please use io.k8s.api.core.v1.HTTPGetAction instead. io.k8s.kubernetes.pkg.api.v1.HTTPHeader: $ref: '#/definitions/io.k8s.api.core.v1.HTTPHeader' description: Deprecated. Please use io.k8s.api.core.v1.HTTPHeader instead. io.k8s.kubernetes.pkg.api.v1.Handler: $ref: '#/definitions/io.k8s.api.core.v1.Handler' description: Deprecated. Please use io.k8s.api.core.v1.Handler instead. io.k8s.kubernetes.pkg.api.v1.HostAlias: $ref: '#/definitions/io.k8s.api.core.v1.HostAlias' description: Deprecated. Please use io.k8s.api.core.v1.HostAlias instead. io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.HostPathVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.HostPathVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.ISCSIVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.KeyToPath: $ref: '#/definitions/io.k8s.api.core.v1.KeyToPath' description: Deprecated. Please use io.k8s.api.core.v1.KeyToPath instead. io.k8s.kubernetes.pkg.api.v1.Lifecycle: $ref: '#/definitions/io.k8s.api.core.v1.Lifecycle' description: Deprecated. Please use io.k8s.api.core.v1.Lifecycle instead. io.k8s.kubernetes.pkg.api.v1.LimitRange: $ref: '#/definitions/io.k8s.api.core.v1.LimitRange' description: Deprecated. Please use io.k8s.api.core.v1.LimitRange instead. io.k8s.kubernetes.pkg.api.v1.LimitRangeItem: $ref: '#/definitions/io.k8s.api.core.v1.LimitRangeItem' description: Deprecated. Please use io.k8s.api.core.v1.LimitRangeItem instead. io.k8s.kubernetes.pkg.api.v1.LimitRangeList: $ref: '#/definitions/io.k8s.api.core.v1.LimitRangeList' description: Deprecated. Please use io.k8s.api.core.v1.LimitRangeList instead. io.k8s.kubernetes.pkg.api.v1.LimitRangeSpec: $ref: '#/definitions/io.k8s.api.core.v1.LimitRangeSpec' description: Deprecated. Please use io.k8s.api.core.v1.LimitRangeSpec instead. io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress: $ref: '#/definitions/io.k8s.api.core.v1.LoadBalancerIngress' description: Deprecated. Please use io.k8s.api.core.v1.LoadBalancerIngress instead. io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus: $ref: '#/definitions/io.k8s.api.core.v1.LoadBalancerStatus' description: Deprecated. Please use io.k8s.api.core.v1.LoadBalancerStatus instead. io.k8s.kubernetes.pkg.api.v1.LocalObjectReference: $ref: '#/definitions/io.k8s.api.core.v1.LocalObjectReference' description: Deprecated. Please use io.k8s.api.core.v1.LocalObjectReference instead. io.k8s.kubernetes.pkg.api.v1.LocalVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.LocalVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.LocalVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.NFSVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.NFSVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.Namespace: $ref: '#/definitions/io.k8s.api.core.v1.Namespace' description: Deprecated. Please use io.k8s.api.core.v1.Namespace instead. io.k8s.kubernetes.pkg.api.v1.NamespaceList: $ref: '#/definitions/io.k8s.api.core.v1.NamespaceList' description: Deprecated. Please use io.k8s.api.core.v1.NamespaceList instead. io.k8s.kubernetes.pkg.api.v1.NamespaceSpec: $ref: '#/definitions/io.k8s.api.core.v1.NamespaceSpec' description: Deprecated. Please use io.k8s.api.core.v1.NamespaceSpec instead. io.k8s.kubernetes.pkg.api.v1.NamespaceStatus: $ref: '#/definitions/io.k8s.api.core.v1.NamespaceStatus' description: Deprecated. Please use io.k8s.api.core.v1.NamespaceStatus instead. io.k8s.kubernetes.pkg.api.v1.Node: $ref: '#/definitions/io.k8s.api.core.v1.Node' description: Deprecated. Please use io.k8s.api.core.v1.Node instead. io.k8s.kubernetes.pkg.api.v1.NodeAddress: $ref: '#/definitions/io.k8s.api.core.v1.NodeAddress' description: Deprecated. Please use io.k8s.api.core.v1.NodeAddress instead. io.k8s.kubernetes.pkg.api.v1.NodeAffinity: $ref: '#/definitions/io.k8s.api.core.v1.NodeAffinity' description: Deprecated. Please use io.k8s.api.core.v1.NodeAffinity instead. io.k8s.kubernetes.pkg.api.v1.NodeCondition: $ref: '#/definitions/io.k8s.api.core.v1.NodeCondition' description: Deprecated. Please use io.k8s.api.core.v1.NodeCondition instead. io.k8s.kubernetes.pkg.api.v1.NodeDaemonEndpoints: $ref: '#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints' description: Deprecated. Please use io.k8s.api.core.v1.NodeDaemonEndpoints instead. io.k8s.kubernetes.pkg.api.v1.NodeList: $ref: '#/definitions/io.k8s.api.core.v1.NodeList' description: Deprecated. Please use io.k8s.api.core.v1.NodeList instead. io.k8s.kubernetes.pkg.api.v1.NodeSelector: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelector' description: Deprecated. Please use io.k8s.api.core.v1.NodeSelector instead. io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement' description: Deprecated. Please use io.k8s.api.core.v1.NodeSelectorRequirement instead. io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm: $ref: '#/definitions/io.k8s.api.core.v1.NodeSelectorTerm' description: Deprecated. Please use io.k8s.api.core.v1.NodeSelectorTerm instead. io.k8s.kubernetes.pkg.api.v1.NodeSpec: $ref: '#/definitions/io.k8s.api.core.v1.NodeSpec' description: Deprecated. Please use io.k8s.api.core.v1.NodeSpec instead. io.k8s.kubernetes.pkg.api.v1.NodeStatus: $ref: '#/definitions/io.k8s.api.core.v1.NodeStatus' description: Deprecated. Please use io.k8s.api.core.v1.NodeStatus instead. io.k8s.kubernetes.pkg.api.v1.NodeSystemInfo: $ref: '#/definitions/io.k8s.api.core.v1.NodeSystemInfo' description: Deprecated. Please use io.k8s.api.core.v1.NodeSystemInfo instead. io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector: $ref: '#/definitions/io.k8s.api.core.v1.ObjectFieldSelector' description: Deprecated. Please use io.k8s.api.core.v1.ObjectFieldSelector instead. io.k8s.kubernetes.pkg.api.v1.ObjectReference: $ref: '#/definitions/io.k8s.api.core.v1.ObjectReference' description: Deprecated. Please use io.k8s.api.core.v1.ObjectReference instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolume: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolume' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolume instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaim: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaim instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimList: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimList instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimSpec: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimSpec instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimStatus: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimStatus instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeList: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeList' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeList instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeSpec: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeSpec instead. io.k8s.kubernetes.pkg.api.v1.PersistentVolumeStatus: $ref: '#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus' description: Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeStatus instead. io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.Pod: $ref: '#/definitions/io.k8s.api.core.v1.Pod' description: Deprecated. Please use io.k8s.api.core.v1.Pod instead. io.k8s.kubernetes.pkg.api.v1.PodAffinity: $ref: '#/definitions/io.k8s.api.core.v1.PodAffinity' description: Deprecated. Please use io.k8s.api.core.v1.PodAffinity instead. io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm: $ref: '#/definitions/io.k8s.api.core.v1.PodAffinityTerm' description: Deprecated. Please use io.k8s.api.core.v1.PodAffinityTerm instead. io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity: $ref: '#/definitions/io.k8s.api.core.v1.PodAntiAffinity' description: Deprecated. Please use io.k8s.api.core.v1.PodAntiAffinity instead. io.k8s.kubernetes.pkg.api.v1.PodCondition: $ref: '#/definitions/io.k8s.api.core.v1.PodCondition' description: Deprecated. Please use io.k8s.api.core.v1.PodCondition instead. io.k8s.kubernetes.pkg.api.v1.PodList: $ref: '#/definitions/io.k8s.api.core.v1.PodList' description: Deprecated. Please use io.k8s.api.core.v1.PodList instead. io.k8s.kubernetes.pkg.api.v1.PodSecurityContext: $ref: '#/definitions/io.k8s.api.core.v1.PodSecurityContext' description: Deprecated. Please use io.k8s.api.core.v1.PodSecurityContext instead. io.k8s.kubernetes.pkg.api.v1.PodSpec: $ref: '#/definitions/io.k8s.api.core.v1.PodSpec' description: Deprecated. Please use io.k8s.api.core.v1.PodSpec instead. io.k8s.kubernetes.pkg.api.v1.PodStatus: $ref: '#/definitions/io.k8s.api.core.v1.PodStatus' description: Deprecated. Please use io.k8s.api.core.v1.PodStatus instead. io.k8s.kubernetes.pkg.api.v1.PodTemplate: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplate' description: Deprecated. Please use io.k8s.api.core.v1.PodTemplate instead. io.k8s.kubernetes.pkg.api.v1.PodTemplateList: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateList' description: Deprecated. Please use io.k8s.api.core.v1.PodTemplateList instead. io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec: $ref: '#/definitions/io.k8s.api.core.v1.PodTemplateSpec' description: Deprecated. Please use io.k8s.api.core.v1.PodTemplateSpec instead. io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.PortworxVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.PortworxVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm: $ref: '#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm' description: Deprecated. Please use io.k8s.api.core.v1.PreferredSchedulingTerm instead. io.k8s.kubernetes.pkg.api.v1.Probe: $ref: '#/definitions/io.k8s.api.core.v1.Probe' description: Deprecated. Please use io.k8s.api.core.v1.Probe instead. io.k8s.kubernetes.pkg.api.v1.ProjectedVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.ProjectedVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.QuobyteVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.RBDVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.RBDVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.ReplicationController: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationController' description: Deprecated. Please use io.k8s.api.core.v1.ReplicationController instead. io.k8s.kubernetes.pkg.api.v1.ReplicationControllerCondition: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition' description: Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerCondition instead. io.k8s.kubernetes.pkg.api.v1.ReplicationControllerList: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationControllerList' description: Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerList instead. io.k8s.kubernetes.pkg.api.v1.ReplicationControllerSpec: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec' description: Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerSpec instead. io.k8s.kubernetes.pkg.api.v1.ReplicationControllerStatus: $ref: '#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus' description: Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerStatus instead. io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector: $ref: '#/definitions/io.k8s.api.core.v1.ResourceFieldSelector' description: Deprecated. Please use io.k8s.api.core.v1.ResourceFieldSelector instead. io.k8s.kubernetes.pkg.api.v1.ResourceQuota: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuota' description: Deprecated. Please use io.k8s.api.core.v1.ResourceQuota instead. io.k8s.kubernetes.pkg.api.v1.ResourceQuotaList: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuotaList' description: Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaList instead. io.k8s.kubernetes.pkg.api.v1.ResourceQuotaSpec: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec' description: Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaSpec instead. io.k8s.kubernetes.pkg.api.v1.ResourceQuotaStatus: $ref: '#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus' description: Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaStatus instead. io.k8s.kubernetes.pkg.api.v1.ResourceRequirements: $ref: '#/definitions/io.k8s.api.core.v1.ResourceRequirements' description: Deprecated. Please use io.k8s.api.core.v1.ResourceRequirements instead. io.k8s.kubernetes.pkg.api.v1.SELinuxOptions: $ref: '#/definitions/io.k8s.api.core.v1.SELinuxOptions' description: Deprecated. Please use io.k8s.api.core.v1.SELinuxOptions instead. io.k8s.kubernetes.pkg.api.v1.ScaleIOVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.ScaleIOVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.Secret: $ref: '#/definitions/io.k8s.api.core.v1.Secret' description: Deprecated. Please use io.k8s.api.core.v1.Secret instead. io.k8s.kubernetes.pkg.api.v1.SecretEnvSource: $ref: '#/definitions/io.k8s.api.core.v1.SecretEnvSource' description: Deprecated. Please use io.k8s.api.core.v1.SecretEnvSource instead. io.k8s.kubernetes.pkg.api.v1.SecretKeySelector: $ref: '#/definitions/io.k8s.api.core.v1.SecretKeySelector' description: Deprecated. Please use io.k8s.api.core.v1.SecretKeySelector instead. io.k8s.kubernetes.pkg.api.v1.SecretList: $ref: '#/definitions/io.k8s.api.core.v1.SecretList' description: Deprecated. Please use io.k8s.api.core.v1.SecretList instead. io.k8s.kubernetes.pkg.api.v1.SecretProjection: $ref: '#/definitions/io.k8s.api.core.v1.SecretProjection' description: Deprecated. Please use io.k8s.api.core.v1.SecretProjection instead. io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.SecretVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.SecretVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.SecurityContext: $ref: '#/definitions/io.k8s.api.core.v1.SecurityContext' description: Deprecated. Please use io.k8s.api.core.v1.SecurityContext instead. io.k8s.kubernetes.pkg.api.v1.Service: $ref: '#/definitions/io.k8s.api.core.v1.Service' description: Deprecated. Please use io.k8s.api.core.v1.Service instead. io.k8s.kubernetes.pkg.api.v1.ServiceAccount: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccount' description: Deprecated. Please use io.k8s.api.core.v1.ServiceAccount instead. io.k8s.kubernetes.pkg.api.v1.ServiceAccountList: $ref: '#/definitions/io.k8s.api.core.v1.ServiceAccountList' description: Deprecated. Please use io.k8s.api.core.v1.ServiceAccountList instead. io.k8s.kubernetes.pkg.api.v1.ServiceList: $ref: '#/definitions/io.k8s.api.core.v1.ServiceList' description: Deprecated. Please use io.k8s.api.core.v1.ServiceList instead. io.k8s.kubernetes.pkg.api.v1.ServicePort: $ref: '#/definitions/io.k8s.api.core.v1.ServicePort' description: Deprecated. Please use io.k8s.api.core.v1.ServicePort instead. io.k8s.kubernetes.pkg.api.v1.ServiceSpec: $ref: '#/definitions/io.k8s.api.core.v1.ServiceSpec' description: Deprecated. Please use io.k8s.api.core.v1.ServiceSpec instead. io.k8s.kubernetes.pkg.api.v1.ServiceStatus: $ref: '#/definitions/io.k8s.api.core.v1.ServiceStatus' description: Deprecated. Please use io.k8s.api.core.v1.ServiceStatus instead. io.k8s.kubernetes.pkg.api.v1.StorageOSPersistentVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.StorageOSPersistentVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.StorageOSVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.StorageOSVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.TCPSocketAction: $ref: '#/definitions/io.k8s.api.core.v1.TCPSocketAction' description: Deprecated. Please use io.k8s.api.core.v1.TCPSocketAction instead. io.k8s.kubernetes.pkg.api.v1.Taint: $ref: '#/definitions/io.k8s.api.core.v1.Taint' description: Deprecated. Please use io.k8s.api.core.v1.Taint instead. io.k8s.kubernetes.pkg.api.v1.Toleration: $ref: '#/definitions/io.k8s.api.core.v1.Toleration' description: Deprecated. Please use io.k8s.api.core.v1.Toleration instead. io.k8s.kubernetes.pkg.api.v1.Volume: $ref: '#/definitions/io.k8s.api.core.v1.Volume' description: Deprecated. Please use io.k8s.api.core.v1.Volume instead. io.k8s.kubernetes.pkg.api.v1.VolumeMount: $ref: '#/definitions/io.k8s.api.core.v1.VolumeMount' description: Deprecated. Please use io.k8s.api.core.v1.VolumeMount instead. io.k8s.kubernetes.pkg.api.v1.VolumeProjection: $ref: '#/definitions/io.k8s.api.core.v1.VolumeProjection' description: Deprecated. Please use io.k8s.api.core.v1.VolumeProjection instead. io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource: $ref: '#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource' description: Deprecated. Please use io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource instead. io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm: $ref: '#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm' description: Deprecated. Please use io.k8s.api.core.v1.WeightedPodAffinityTerm instead. io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Initializer: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.Initializer' description: Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.Initializer instead. io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfiguration: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration' description: Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration instead. io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfigurationList: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList' description: Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList instead. io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Rule: $ref: '#/definitions/io.k8s.api.admissionregistration.v1alpha1.Rule' description: Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.Rule instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision' description: Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevision instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList' description: Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevisionList instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.Deployment: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Deployment' description: Deprecated. Please use io.k8s.api.apps.v1beta1.Deployment instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentCondition: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition' description: Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentCondition instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentList: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentList' description: Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentList instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentRollback: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback' description: Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentRollback instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentSpec: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec' description: Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentSpec instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStatus: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus' description: Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStatus instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStrategy: $ref: '#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy' description: Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStrategy instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollbackConfig: $ref: '#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig' description: Deprecated. Please use io.k8s.api.apps.v1beta1.RollbackConfig instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateDeployment: $ref: '#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment' description: Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateDeployment instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateStatefulSetStrategy: $ref: '#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy' description: Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.Scale: $ref: '#/definitions/io.k8s.api.apps.v1beta1.Scale' description: Deprecated. Please use io.k8s.api.apps.v1beta1.Scale instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleSpec: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec' description: Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleSpec instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleStatus: $ref: '#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus' description: Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleStatus instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSet: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSet' description: Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSet instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetList: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList' description: Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetList instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetSpec: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec' description: Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetSpec instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetStatus: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus' description: Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetStatus instead. io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetUpdateStrategy: $ref: '#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy' description: Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy instead. io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReview: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReview' description: Deprecated. Please use io.k8s.api.authentication.v1.TokenReview instead. io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewSpec: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec' description: Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewSpec instead. io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewStatus: $ref: '#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus' description: Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewStatus instead. io.k8s.kubernetes.pkg.apis.authentication.v1.UserInfo: $ref: '#/definitions/io.k8s.api.authentication.v1.UserInfo' description: Deprecated. Please use io.k8s.api.authentication.v1.UserInfo instead. io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReview: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReview' description: Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReview instead. io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewSpec: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec' description: Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewSpec instead. io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewStatus: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus' description: Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewStatus instead. io.k8s.kubernetes.pkg.apis.authentication.v1beta1.UserInfo: $ref: '#/definitions/io.k8s.api.authentication.v1beta1.UserInfo' description: Deprecated. Please use io.k8s.api.authentication.v1beta1.UserInfo instead. io.k8s.kubernetes.pkg.apis.authorization.v1.LocalSubjectAccessReview: $ref: '#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview' description: Deprecated. Please use io.k8s.api.authorization.v1.LocalSubjectAccessReview instead. io.k8s.kubernetes.pkg.apis.authorization.v1.NonResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes' description: Deprecated. Please use io.k8s.api.authorization.v1.NonResourceAttributes instead. io.k8s.kubernetes.pkg.apis.authorization.v1.ResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1.ResourceAttributes' description: Deprecated. Please use io.k8s.api.authorization.v1.ResourceAttributes instead. io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReview: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview' description: Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReview instead. io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReviewSpec: $ref: '#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec' description: Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec instead. io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReview: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview' description: Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReview instead. io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewSpec: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec' description: Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewSpec instead. io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewStatus: $ref: '#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus' description: Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewStatus instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.LocalSubjectAccessReview: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.NonResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.NonResourceAttributes instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.ResourceAttributes: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.ResourceAttributes instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReview: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReviewSpec: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReview: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReview instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewSpec: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec instead. io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewStatus: $ref: '#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus' description: Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference: $ref: '#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference' description: Deprecated. Please use io.k8s.api.autoscaling.v1.CrossVersionObjectReference instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler' description: Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList' description: Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec' description: Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus: $ref: '#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus' description: Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.Scale: $ref: '#/definitions/io.k8s.api.autoscaling.v1.Scale' description: Deprecated. Please use io.k8s.api.autoscaling.v1.Scale instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleSpec: $ref: '#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec' description: Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleSpec instead. io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleStatus: $ref: '#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus' description: Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleStatus instead. io.k8s.kubernetes.pkg.apis.batch.v1.Job: $ref: '#/definitions/io.k8s.api.batch.v1.Job' description: Deprecated. Please use io.k8s.api.batch.v1.Job instead. io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition: $ref: '#/definitions/io.k8s.api.batch.v1.JobCondition' description: Deprecated. Please use io.k8s.api.batch.v1.JobCondition instead. io.k8s.kubernetes.pkg.apis.batch.v1.JobList: $ref: '#/definitions/io.k8s.api.batch.v1.JobList' description: Deprecated. Please use io.k8s.api.batch.v1.JobList instead. io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec: $ref: '#/definitions/io.k8s.api.batch.v1.JobSpec' description: Deprecated. Please use io.k8s.api.batch.v1.JobSpec instead. io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus: $ref: '#/definitions/io.k8s.api.batch.v1.JobStatus' description: Deprecated. Please use io.k8s.api.batch.v1.JobStatus instead. io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJob: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJob' description: Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJob instead. io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobList: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJobList' description: Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJobList instead. io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobSpec: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJobSpec' description: Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJobSpec instead. io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobStatus: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.CronJobStatus' description: Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJobStatus instead. io.k8s.kubernetes.pkg.apis.batch.v2alpha1.JobTemplateSpec: $ref: '#/definitions/io.k8s.api.batch.v2alpha1.JobTemplateSpec' description: Deprecated. Please use io.k8s.api.batch.v2alpha1.JobTemplateSpec instead. io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequest: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest' description: Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequest instead. io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestCondition: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition' description: Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition instead. io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestList: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList' description: Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestList instead. io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestSpec: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec' description: Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec instead. io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestStatus: $ref: '#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus' description: Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSet instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetList instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetSpec instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetStatus instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetUpdateStrategy: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Deployment' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.Deployment instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentCondition instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentList instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentRollback instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentSpec instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStatus instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStrategy instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.FSGroupStrategyOptions: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressPath instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HostPortRange: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.HostPortRange instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IDRange: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IDRange' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.IDRange instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Ingress' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.Ingress instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressBackend instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressList' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressList instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressRule' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressRule instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressSpec instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressStatus instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressTLS instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicy instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyIngressRule: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyList instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPeer: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPeer instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPort: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPort instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicySpec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicySpec instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicy instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicyList instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicySpec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSet instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetCondition instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetList instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetSpec instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetStatus instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.RollbackConfig instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDaemonSet: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDeployment instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RunAsUserStrategyOptions: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SELinuxStrategyOptions: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.Scale' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.Scale instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleSpec instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleStatus instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SupplementalGroupsStrategyOptions: $ref: '#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions' description: Deprecated. Please use io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions instead. io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicy: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicy' description: Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicy instead. io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyIngressRule: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule' description: Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyIngressRule instead. io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyList: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicyList' description: Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyList instead. io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPeer: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer' description: Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPeer instead. io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPort: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort' description: Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPort instead. io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicySpec: $ref: '#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec' description: Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicySpec instead. io.k8s.kubernetes.pkg.apis.policy.v1beta1.Eviction: $ref: '#/definitions/io.k8s.api.policy.v1beta1.Eviction' description: Deprecated. Please use io.k8s.api.policy.v1beta1.Eviction instead. io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudget: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget' description: Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudget instead. io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetList: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList' description: Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetList instead. io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetSpec: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec' description: Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec instead. io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetStatus: $ref: '#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus' description: Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRole: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRole instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBinding: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRoleBinding instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBindingList: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleList: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleList' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRoleList instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.PolicyRule: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.PolicyRule' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.PolicyRule instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Role: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Role' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.Role instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBinding: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleBinding instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBindingList: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleBindingList instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleList: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleList' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleList instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleRef: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.RoleRef' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleRef instead. io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Subject: $ref: '#/definitions/io.k8s.api.rbac.v1alpha1.Subject' description: Deprecated. Please use io.k8s.api.rbac.v1alpha1.Subject instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRole: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRole instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBinding: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBinding instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBindingList: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBindingList instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleList: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleList instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.PolicyRule: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.PolicyRule instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Role: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Role' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.Role instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBinding: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBinding instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBindingList: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBindingList instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleList: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleList' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleList instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleRef: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.RoleRef' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleRef instead. io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Subject: $ref: '#/definitions/io.k8s.api.rbac.v1beta1.Subject' description: Deprecated. Please use io.k8s.api.rbac.v1beta1.Subject instead. io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPreset: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPreset' description: Deprecated. Please use io.k8s.api.settings.v1alpha1.PodPreset instead. io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetList: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList' description: Deprecated. Please use io.k8s.api.settings.v1alpha1.PodPresetList instead. io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetSpec: $ref: '#/definitions/io.k8s.api.settings.v1alpha1.PodPresetSpec' description: Deprecated. Please use io.k8s.api.settings.v1alpha1.PodPresetSpec instead. io.k8s.kubernetes.pkg.apis.storage.v1.StorageClass: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClass' description: Deprecated. Please use io.k8s.api.storage.v1.StorageClass instead. io.k8s.kubernetes.pkg.apis.storage.v1.StorageClassList: $ref: '#/definitions/io.k8s.api.storage.v1.StorageClassList' description: Deprecated. Please use io.k8s.api.storage.v1.StorageClassList instead. io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClass: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClass' description: Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClass instead. io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClassList: $ref: '#/definitions/io.k8s.api.storage.v1beta1.StorageClassList' description: Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClassList instead. io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource: description: A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource types to the API. It consists of one or more Versions of the api. 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/api-conventions.md#resources' type: string description: description: Description is the description of this object. 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta' description: Standard object metadata versions: description: Versions are versions for this third party object items: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.APIVersion' type: array x-kubernetes-group-version-kind: - group: extensions kind: ThirdPartyResource version: v1beta1 io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResourceList: description: ThirdPartyResourceList is a list of ThirdPartyResources. 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/api-conventions.md#resources' type: string items: description: Items is the list of ThirdPartyResources. items: $ref: '#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ThirdPartyResource' 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/api-conventions.md#types-kinds' type: string metadata: $ref: '#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta' description: Standard list metadata. required: - items x-kubernetes-group-version-kind: - group: extensions kind: ThirdPartyResourceList version: v1beta1 security: - BearerToken: [] securityDefinitions: BearerToken: description: Bearer Token authentication in: header name: authorization type: apiKey ================================================ FILE: src/tools/Common.Tools.props ================================================ $(PackageOutputPath)/packages ================================================ FILE: src/tools/KubeClient.Tools.Generator/KubeClient.Tools.Generator.csproj ================================================  Exe net10.0 enable enable true kubeclient-codegen $(PackageTags);generator;codegen ================================================ FILE: src/tools/KubeClient.Tools.Generator/Program.cs ================================================ using KubeClient.ApiMetadata; using KubeClient.Extensions.CustomResources.CodeGen; using KubeClient.Extensions.CustomResources.Schema; using KubeClient.Http; using KubeClient.Models; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Formatting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Console; using Document = Microsoft.CodeAnalysis.Document; namespace KubeClient.Tools.Generator { /// /// The KubeClient code-generator tool. /// static class Program { /// /// The source for root-level cancellation tokens. /// static readonly CancellationTokenSource Cancellation = new CancellationTokenSource(); /// /// Standard console-app cancellation behaviour. /// static Program() { Console.CancelKeyPress += OnConsoleCancellation; } /// /// The root logger for the code-generator tool. /// public static ILogger Log { get; private set; } = null!; /// /// The tool's main program entry point. /// /// /// The tool's command-line arguments. /// /// /// The program exit code. /// static async Task Main(string[] commandLineArguments) { ProgramOptions? options = ProgramOptions.Parse(commandLineArguments); if (options == null) return ExitCodes.InvalidArguments; using ServiceProvider loggingServiceProvider = ConfigureLogging(options); try { IKubeApiClient kubeApiClient = KubeApiClient.Create( K8sConfig.Load().ToKubeClientOptions( kubeContextName: options.KubeContextName, defaultKubeNamespace: "default", loggerFactory: loggingServiceProvider.GetRequiredService() ) ); CustomResourceDefinitionListV1 crds = await kubeApiClient.CustomResourceDefinitionsV1().List(cancellationToken: Cancellation.Token); Dictionary customResourceTypes = new Dictionary(); foreach (CustomResourceDefinitionV1 crd in crds) { foreach (CustomResourceDefinitionVersionV1 crdVersion in crd.Spec.Versions) { KubeResourceType versionedResourceType = new KubeResourceType( Group: crd.Spec.Group, Version: crdVersion.Name, ResourceKind: crd.Spec.Names.Kind ); customResourceTypes.Add(versionedResourceType, crd); } } KubeApiMetadataCache metadataCache = new KubeApiMetadataCache(); await metadataCache.Load(kubeApiClient, cancellationToken: Cancellation.Token); using AdhocWorkspace workspace = new AdhocWorkspace(); Project project = workspace.AddProject("KubeClient.Generated", LanguageNames.CSharp); KubeResourceType targetResourceKind = new KubeResourceType(options.Group, options.Version, options.Kind); if (customResourceTypes.TryGetValue(targetResourceKind, out CustomResourceDefinitionV1? kafkaConnectorDefinition)) { KubeApiMetadata? resourceTypeMetadata = metadataCache.Get( kind: targetResourceKind.ResourceKind, apiGroup: targetResourceKind.Group, apiVersion: targetResourceKind.Version ); if (resourceTypeMetadata == null) { Log.LogError("Failed to retrieve metadata for resource type {@ResourceType}.", targetResourceKind); return ExitCodes.UnexpectedError; } KubeSchema schema = JsonSchemaParserV1.BuildKubeSchema(metadataCache, kafkaConnectorDefinition); project = ModelGeneratorV1.GenerateModels(schema, targetResourceKind, project, options.Namespace); } if (!workspace.TryApplyChanges(project.Solution)) { Log.LogError("Failed to apply solution changes to workspace."); return ExitCodes.UnexpectedError; } foreach (Document document in project.Documents.OrderBy(document => document.Name, StringComparer.OrdinalIgnoreCase).Take(1)) { Document formattedDocument = await Formatter.FormatAsync(document, workspace.Options, cancellationToken: Cancellation.Token); if (formattedDocument.TryGetSyntaxRoot(out SyntaxNode? syntaxRoot)) { string generatedCode = syntaxRoot.ToFullString(); Log.LogInformation("\n{DocumentSourceText:l}", generatedCode); await File.WriteAllTextAsync(options.OutputFile, generatedCode); } else { Log.LogError("Failed to retrieve source text for document {DocumentName}.", document.Name); return ExitCodes.UnexpectedError; } } return ExitCodes.Success; } catch (HttpRequestException kubeError) { Log.LogError(kubeError, "Kubernetes API error: {@Status}", kubeError.Response); return ExitCodes.UnexpectedError; } catch (Exception unexpectedError) { Log.LogError(unexpectedError, "An unexpected error has occurred."); return ExitCodes.UnexpectedError; } finally { using (Cancellation) { Cancellation.Cancel(); } } } /// /// Well-known program exit codes. /// public static class ExitCodes { /// /// Program completed successfully. /// public const int Success = 0; /// /// One or more command-line arguments were missing or invalid. /// public const int InvalidArguments = 1; /// /// An unexpected error occurred during program execution. /// public const int UnexpectedError = 5; } /// /// Configure application-level logging and populate . /// /// /// Program options. /// /// /// The global logging service provider. /// static ServiceProvider ConfigureLogging(ProgramOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); ServiceProvider loggingServiceProvider = new ServiceCollection() .AddLogging(logging => { logging.SetMinimumLevel( options.Verbose ? LogLevel.Trace : LogLevel.Information ); logging.AddConsole(); logging.AddDebug(); }) .BuildServiceProvider(new ServiceProviderOptions { ValidateOnBuild = true, ValidateScopes = true, }); try { ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService(); Log = loggerFactory.CreateLogger(typeof(Program)); return loggingServiceProvider; } catch (Exception) { // Clean up, on failure (if possible). using (loggingServiceProvider) { throw; } } } static IHostBuilder BuildToolHost(ProgramOptions options) { if (options == null) throw new ArgumentNullException(nameof(options)); return Host.CreateDefaultBuilder() .ConfigureLogging(logging => { if (options.Verbose) logging.SetMinimumLevel(LogLevel.Debug); else logging.SetMinimumLevel(LogLevel.Information); logging.AddDebug(); logging.AddSimpleConsole(console => { if (Console.IsOutputRedirected || Console.IsErrorRedirected) console.ColorBehavior = LoggerColorBehavior.Disabled; else console.ColorBehavior = LoggerColorBehavior.Enabled; }); }) .UseConsoleLifetime(consoleLifetime => { consoleLifetime.SuppressStatusMessages = !options.Verbose; }); } static void OnConsoleCancellation(object? sender, ConsoleCancelEventArgs args) { if (sender == null) throw new ArgumentNullException(nameof(sender)); if (args == null) throw new ArgumentNullException(nameof(args)); Cancellation.Cancel(); args.Cancel = true; // We'll handle shutdown. } } } ================================================ FILE: src/tools/KubeClient.Tools.Generator/ProgramOptions.cs ================================================ using CommandLine; namespace KubeClient.Tools.Generator { /// /// Program options for the generator tool. /// class ProgramOptions { /// /// The name of the target Kubernetes client context to use (from ~/kube/config). /// [Option('c', "context", Required = true, HelpText = "")] public string KubeContextName { get; set; } = String.Empty; /// /// The name of the target API group. /// [Option('g', "group", Required = true, HelpText = "The name of the target API group.")] public string Group { get; set; } = String.Empty; /// /// The name of the target API version. /// [Option('v', "version", Required = true, HelpText = "The name of the target API version.")] public string Version { get; set; } = String.Empty; /// /// The name of the target resource kind. /// [Option('k', "kind", Required = true, HelpText = "The name of the target resource kind.")] public string Kind { get; set; } = String.Empty; /// /// The namespace for generated code. /// [Option('n', "namespace", Required = true, HelpText = "The namespace for generated code.")] public string Namespace { get; set; } = String.Empty; /// /// The name of the output file for generated code. /// [Option('o', "out", Required = true, HelpText = "The name of the output file for generated code.")] public string OutputFile { get; set; } = String.Empty; /// /// Enable verbose logging. /// [Option("verbose", Default = false, HelpText = "Enable verbose logging.")] public bool Verbose { get; set; } /// /// Parse program options from command-line arguments. /// /// /// The command-line arguments /// /// /// The parsed , or null if the command-line arguments could not be parsed. /// public static ProgramOptions? Parse(string[] commandLineArguments) { ProgramOptions? options = null; Parser.Default.ParseArguments(commandLineArguments) .WithParsed(parsedOptions => options = parsedOptions); return options; } } } ================================================ FILE: test/Common.props ================================================ latest ================================================ FILE: test/KubeClient.Extensions.Configuration.Tests/KubeClient.Extensions.Configuration.Tests.csproj ================================================  net7.0;net8.0;net9.0;net10.0 ================================================ FILE: test/KubeClient.Extensions.Configuration.Tests/ProviderSemanticsTests.cs ================================================ using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using Xunit; namespace KubeClient.Extensions.Configuration.Tests { /// /// Tests to validate the semantics of , , and . /// public class ProviderSemanticsTests { /// /// An delegate used to trigger reload of configuration. /// static Action TriggerReload; /// /// A second will override values provided by the first source. /// [Fact] public void Can_Override_Configuration() { var source1 = new DummyConfigSource { ProviderData = { ["Key1"] = "Value1", ["Key2"] = "Value2", } }; var source2 = new DummyConfigSource { ProviderData = { ["Key1"] = "Value1a", ["Key3"] = "Value3", } }; IConfiguration configuration = new ConfigurationBuilder() .Add(source1) .Add(source2) .Build(); Assert.Equal("Value2", configuration["Key2"]); Assert.Equal("Value3", configuration["Key3"]); Assert.Equal("Value1a", configuration["Key1"]); source2.ProviderData["Key1"] = "Value1b"; TriggerReload(); Assert.Equal("Value2", configuration["Key2"]); Assert.Equal("Value3", configuration["Key3"]); Assert.Equal("Value1a", configuration["Key1"]); } /// /// A dummy configuration source that gets its data from a dictionary. /// class DummyConfigSource : IConfigurationSource { /// /// Create a new . /// public DummyConfigSource() { } /// /// The provider data. /// public Dictionary ProviderData { get; } = new Dictionary(StringComparer.OrdinalIgnoreCase); /// /// Build a configuration provider for the source's configured values. /// /// /// The for which configuration is being built. /// /// /// The configuration provider. /// public IConfigurationProvider Build(IConfigurationBuilder builder) => new DummyConfigProvider(ProviderData); } /// /// A dummy configuration provider that gets its data from a dictionary. /// class DummyConfigProvider : ConfigurationProvider { /// /// Create a new . /// /// /// A containing the provider data. /// public DummyConfigProvider(Dictionary providerData) { if ( providerData == null ) throw new ArgumentNullException(nameof(providerData)); ProviderData = providerData; // Hacky mechanism to register for reload. Action oldReload = TriggerReload; TriggerReload = () => { if (oldReload != null) oldReload(); OnReload(); }; } /// /// A containing the provider data. /// public Dictionary ProviderData { get; } /// /// Load the provider data's. /// public override void Load() { base.Load(); Data = new Dictionary(ProviderData, StringComparer.OrdinalIgnoreCase); } } } } ================================================ FILE: test/KubeClient.Extensions.CustomResources.Tests/GlobalUsings.cs ================================================ global using Xunit; ================================================ FILE: test/KubeClient.Extensions.CustomResources.Tests/KubeClient.Extensions.CustomResources.Tests.csproj ================================================  net7.0;net8.0;net9.0;net10.0 ================================================ FILE: test/KubeClient.Extensions.CustomResources.Tests/Schema/Utilities/NameWranglerTests.cs ================================================ using KubeClient.Extensions.CustomResources.Schema.Utilities; namespace KubeClient.Extensions.CustomResources.Tests.Schema.Utilities { public class NameWranglerTests { [Theory] [InlineData("v1", "V1")] [InlineData("v1beta1", "V1Beta1")] [InlineData("v12beta34", "V12Beta34")] [InlineData("v12etaBetaPi34", "V12EtaBetaPi34")] [InlineData("v12EtaBetaPi34", "V12EtaBetaPi34")] [InlineData("v12etabetaPi34", "V12EtabetaPi34")] public void Can_Capitalize_Name(string name, string expected) { string actual = NameWrangler.CapitalizeName(name); Assert.Equal(expected, actual); } } } ================================================ FILE: test/KubeClient.Extensions.DataProtection.Tests/GlobalUsings.cs ================================================ global using Xunit; ================================================ FILE: test/KubeClient.Extensions.DataProtection.Tests/KeyPersistenceTests.cs ================================================ using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Concurrent; using System.Reactive.Subjects; using System.Threading.Tasks; using Xunit.Abstractions; using MSLoggerFactory = Microsoft.Extensions.Logging.LoggerFactory; namespace KubeClient.Extensions.DataProtection.Tests { using Models; using TestCommon; using TestCommon.Logging; using TestCommon.Mocks; /// /// Tests for DataProtection key persistence using K8s secrets. /// public class KeyPersistenceTests : TestBase { /// /// The name of the secret used to sure DataProtection keys. /// static readonly string TestSecretName = "test-secret"; /// /// The namespace of the secret used to sure DataProtection keys. /// static readonly string TestSecretNamespace = "test-namespace"; /// /// Create a new DataProtection key persistence test-suite. /// /// /// Output for the current test. /// public KeyPersistenceTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that the data protector (i.e. ) can be resolved from the DI container. /// /// /// This results in the data-protection system loading and initialising our provider. /// [Fact] public async Task Can_Create_Data_Protector() { using Subject secretWatchSubject = new Subject(); // Needed because the key store always watches for changes. ConcurrentDictionary secrets = new ConcurrentDictionary(); await using MockKubeApi mockApi = MockKubeApi.Create(TestOutput, api => { api.HandleResources(secrets, secretWatchSubject); }); using ServiceProvider serviceProvider = BuildServiceProvider(mockApi); IDataProtectionProvider dataProtection = serviceProvider.GetRequiredService(); IDataProtector dataProtector = dataProtection.CreateProtector(purpose: "Test"); SecretV1 secretResource; string secretResourceKey = MockKubeApi.GetResourceKey(TestSecretName, TestSecretNamespace); Assert.True( secrets.TryGetValue(secretResourceKey, out secretResource) ); Assert.NotNull(secretResource); Assert.Empty(secretResource.Data); } /// /// Verify that the data protector can encrypt (and then decrypt) some data. /// [Fact] public async Task Can_RoundTrip_Data() { using Subject secretWatchSubject = new Subject(); // Needed because the key store always watches for changes. ConcurrentDictionary secrets = new ConcurrentDictionary(); await using MockKubeApi mockApi = MockKubeApi.Create(TestOutput, api => { api.HandleResources(secrets, secretWatchSubject); }); using ServiceProvider serviceProvider = BuildServiceProvider(mockApi); IDataProtectionProvider dataProtection = serviceProvider.GetRequiredService(); IDataProtector dataProtector = dataProtection.CreateProtector(purpose: "Test"); SecretV1 secretResource; string secretResourceKey = MockKubeApi.GetResourceKey(TestSecretName, TestSecretNamespace); Assert.True( secrets.TryGetValue(secretResourceKey, out secretResource) ); Assert.NotNull(secretResource); Assert.Empty(secretResource.Data); const string expectedPlainText = "PlainText"; string protectedData = dataProtector.Protect(expectedPlainText); Assert.True( secrets.TryGetValue(secretResourceKey, out secretResource) ); Assert.NotNull(secretResource); Assert.NotEmpty(secretResource.Data); string actualPlainText = dataProtector.Unprotect(protectedData); Assert.Equal(expectedPlainText, actualPlainText); } /// /// Build a (client-side) service provider for use in tests. /// /// /// The mock Kubernetes API that the client will communicate. /// /// /// An optional delegate that can be used to customise the data-protection system. /// /// /// An optional delegate that can be used to configure additional services for dependency-injection. /// /// /// The configured service provider. /// ServiceProvider BuildServiceProvider(MockKubeApi mockApi, Action configureDataProtection = null, Action configureServices = null) { if (mockApi == null) throw new ArgumentNullException(nameof(mockApi)); IKubeApiClient testApiClient = KubeApiClient.CreateTestClient( mockApi.CreateClient(), new KubeClientOptions { ApiEndPoint = mockApi.BaseAddress, AuthStrategy = KubeAuthStrategy.None, KubeNamespace = "default", LoggerFactory = MSLoggerFactory.Create(logging => logging.AddTestOutput(TestOutput)), LogPayloads = true, } ); var services = new ServiceCollection(); services.AddSingleton(testApiClient); IDataProtectionBuilder dataProtection = services.AddDataProtection() .AddKeyManagementOptions(keyManagement => { keyManagement.AutoGenerateKeys = true; }) .PersistKeysToKubeSecret(testApiClient, TestSecretName, TestSecretNamespace); if (configureDataProtection != null) configureDataProtection(dataProtection); if (configureServices != null) configureServices(services); return services.BuildServiceProvider(new ServiceProviderOptions { ValidateOnBuild = true, ValidateScopes = true, }); } } } ================================================ FILE: test/KubeClient.Extensions.DataProtection.Tests/KubeClient.Extensions.DataProtection.Tests.csproj ================================================  net7.0;net8.0;net9.0;net10.0 false true ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/Certificates/test-cert-01-key.pem ================================================ -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAqJ62CZJfUwL/wxDMQ2aekpshKaSTAIj7VnlaMp2AaUrFS4mz L186BkoDlB/wVhaM5D7d/DZW+C33Qg2lTrFgUPfvobZX4cLdG/WLS6wbgXWtzbBM 2lv756MC6BQzYbtHL/MfeniI0gqttVQFwfE/6kBweRl7dVbnXN8rxS6LEsT19L7u CEjBcFKXFM4LkZ6pjGmT3sRZH8Azan+4XXHQRWjkcZFZk+G+1K5xm7sZYw1W6sS8 Wb89oqj/N/xyjakejfb1edspvAXWJ2VxTNNDifORCA5LMJV4lLmOta9wdkOx1VIg NuH2kumwt4uF1V7D0Jg4g/C1zKm4JYs26UnjOQIDAQABAoIBAQCR70p9XkFCBwZ0 PMWMT/RNzhUVhWn0vJlKbhyyUb4hYqT+i16ZUUFW0Bfoyvumhj3KDN7yudTrVlz4 vfaj9L/3U54Bx16n9Y6H9CtqgroLgV269yqMka+i+mI5mcIeg4dI6JIF3OwNXVCZ 7u5MvA8lHkA5juRa2avDpSKstWuIAadAtk6rAy3BO/rfcXdR6uqmxfzGB35spFdn IyAmdSkwV8OYRK4AQgejz4J7L9N05xIn+LFVcFwmz0omuITLjUdnHWK1iYNe4fhr EKx0Z7fXQ94Lj2EH5LZwHrh5gU7S0FPx/IC7FZrP5/AFlCiCGgm+/Ye2NJz2WnRL 4dFT+YVBAoGBANdFMNOd+E94uSmSj8md9a48mGBiF7S20S7rODc8TVAEPAtw18dY OOiUnuSB15TANlMOdm6TR4dxRJWzMu27uUOMXAdoOdH7VPH16r+rZ76xdHB9XSs1 1OIy4GPcKNzvNgtYu3/p9kwz+xpciBB54+/8C1KW8WYAhXHaDXhmAb5/AoGBAMiF +HpPXrQ9dXuJ/JWPj5Pkpe2+8quKWz+pQrSTN6Ov4CNiLU12cR+89ZkKWiwm8djT OuiKBDvUVBZfcLcil06sg9lnATQKeFCHOpsTpPJBTI2Wi/Mse2ngWDnVSwi2gINO zWy0hQWyeLvYk1FwRBuSFI8I9ftUTfdofmgeRvJHAoGAVC/s/nWDDKFr2IRG01SB JljwRpFWMAhnGnBHFeLxYV+mk9rXqFAqQVsOINNemf/pvuWjD29tw9xaNClWu350 36Pewc7S/fnKqK3B1p+T/RGtNejxLNrqnGPFOYh6Op0ah6l1+npnJjoV86NIWxkw OURasTvywC9oALSEHBfYisUCgYAyOMuY5pQTlGj+PfsTAle1dMjSGMbyi7563Uul qlF/H6eFdStfgVCn4E2qvNsEv+RGp/DTGO4ihfVhfRnf5Dv9KlwDcTbt78leceAN wwfG3O/tbk0y5Gssg1HVekRGtF7PhEcS+MtwN9jhQ0byWKnWNeoMQPRKtDyqwHMY ZKzkNQKBgQC46uw9k4UpFWtmDFBDJCdAClDhRT55UDRbsHC+wv7WmsAxDMR6JkYW p7bvx8b90ya/Vib5eA7sM9/ddpjWUzkPb0d3vvoxTvTy6aUcKZ5K3vGSkQcOwra+ 7fbeuNuFfsPMyuEYsqF6vWL5V+f1q17qN2f2fF9ptAUQHtvnGQI9ng== -----END RSA PRIVATE KEY----- ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/Certificates/test-cert-01.pem ================================================ -----BEGIN CERTIFICATE----- MIIDNDCCAhygAwIBAgIQF6iaRL0toppF+IQ0/s0FuTANBgkqhkiG9w0BAQsFADAU MRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMjQwODA2MTIwMDQxWhcNMjUwODA1MTQw MDAwWjAUMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQConrYJkl9TAv/DEMxDZp6SmyEppJMAiPtWeVoynYBpSsVLibMv XzoGSgOUH/BWFozkPt38Nlb4LfdCDaVOsWBQ9++htlfhwt0b9YtLrBuBda3NsEza W/vnowLoFDNhu0cv8x96eIjSCq21VAXB8T/qQHB5GXt1Vudc3yvFLosSxPX0vu4I SMFwUpcUzguRnqmMaZPexFkfwDNqf7hdcdBFaORxkVmT4b7UrnGbuxljDVbqxLxZ vz2iqP83/HKNqR6N9vV52ym8BdYnZXFM00OJ85EIDkswlXiUuY61r3B2Q7HVUiA2 4faS6bC3i4XVXsPQmDiD8LXMqbglizbpSeM5AgMBAAGjgYEwfzAMBgNVHRMBAf8E AjAAMA4GA1UdDwEB/wQEAwIFoDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDATAXBgNV HREBAf8EDTALgglsb2NhbGhvc3QwDwYKKwYBBAGCN1QBAQQBAjAdBgNVHQ4EFgQU bARC90z7RJxa1gONR556msxuFE4wDQYJKoZIhvcNAQELBQADggEBAJiCpVWx3et1 KHZFxX2UhcH+V06CQzbn0oDzAkpeNeNPNJoQpNLbgmYddbwxlYUHN7j9QbnuP7I8 jSHl8nLLxRs4B6LaluCkCv7SJow9o7ERuPe0tLWCObSniUxeIO7IUa/H2E6lTSK8 5UBu9Z2sMhjqJmC6oWw3gRqOX+iERryvhEjGF9JFHqZ/nxhZoYDHFU4UKkkBfxQT 9U2nTlz+iuIutfQk9FUOHfD2ETcUb7H3E76+qgNF5qEvvNPyOKRsul8WQYTByqEH 6UUJkBQYu5fGg8nXXr/ZHbtoQxWRuNlerv6XWJYiK7Qk8EYSls4rCfbdOt4Vehz1 E8aYRKB0+9k= -----END CERTIFICATE----- ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/Configurations/valid1.yml ================================================ apiVersion: v1 kind: Config clusters: - cluster: server: https:/foo.bar.com/r/projects/1a27585/kubernetes:6443 name: Kube8 - cluster: insecure-skip-tls-verify: true server: https://diddly.do-see-do.net:8080/r/projects/1a7/kubernetes:6443 name: daas-demo - cluster: insecure-skip-tls-verify: true server: https://localhost:6445 name: docker-for-desktop-cluster - cluster: certificate-authority: C:\Users\tintoy\.minikube\ca.crt server: https://123.456.789.1:8443 name: minikube - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN3akNDQWFxZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKTFdOaE1CNFhEVEU0TURJd05qQXhNREkwTUZvWERUSTRNREl3TkRBeE1ESTBNRm93RWpFUU1BNEdBMVVFQXhNSAphM1ZpWlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU9CTzlkTjJka2orCnZSTzBvdldkVW5Qd0tPNkl1c2NnWGhrWTE1MGZHdExydWpsMjhkUnFOdHpwZExLVlNhRm1JekJnOGg4bnFmOGwKYUhEVEFqNTdNelRnZkFZUGpQY2tzYVFjWE9wODQ0dzB0SmNQSW0wZ3ZzbHNENzNVQ1MvVnRwWmV1Q1FRbXFXNwpXc2dKNUVXZEhSR292dVpwSVlCN2lxVnJRaGxiRksyU1hxanZHbHhBVGsvV294VUJJSzhKMEZZcTkybXFNUzNqCmREM1B1NmdrOVBXcGxEWTFvNVhIVDJwbnY1UkdvOFpjRURIcFRqckE3RUZDTUZQRWJ5ZzV3RkQ4RitndXpoeWQKUlpWNTBIKzM2U2ZucHBRRUxLTmpTV2NUcG5uSW5zdlFQbU9YdXpJeDVHWGNFblU5NFFhNzVqNGpOS2lhSkVUUwp6QW5iWENFblU3MENBd0VBQWFNak1DRXdEZ1lEVlIwUEFRSC9CQVFEQWdLa01BOEdBMVVkRXdFQi93UUZNQU1CCkFmOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBTW5aUVkzQkJTMFpOQmhqa1Zza2FaWFNMcCtRVkZWeXRFSjIKSno4cStyMmh1d3ZFRGZyTW9ZV2psdUJ3LzNrdjQ1MWVxbHNESDlQTmp4dkd6MGJ3VGxRMk5UQk9zVlVTdmZpagpwd1VyUnh1bDIzcmpDTHdFbnhvR0tUTVVub0hCRDFQQkgrTFpiZTgxSWtXbzlVNEJrNll6NHA4NDZKRjVzZ21wCjdEKy96NjN2Z2t1YkVWNWEybnllV0lGTlFha0xMb3ZkNWZKcFI0aEUxU3lwUWNMYzFSRk9kVTVlUWRoZFdDSTQKUHNDenNTamVTdE5YRTE0NjNDQm8zMmtEQjc3YkdSZTFvY3FXUVg0QnBqM3BmNTkvQlRRK0hzeUo3RE4zcDBFdApVd04zT2h2NkVpdExPQWtVRng5aWRCcEFFQm9qM281TVkva3JFVmlMZ0cvWHIvU3VjOFk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K server: https://100.200.300.400:6443 name: rke contexts: - context: cluster: Kube8 user: Kube8 name: Kube8 - context: cluster: daas-demo user: daas-demo name: daas-demo - context: cluster: docker-for-desktop-cluster user: docker-for-desktop name: docker-for-desktop - context: cluster: minikube user: minikube name: minikube - context: cluster: rke user: rke-admin name: rke current-context: docker-for-desktop preferences: {} # Note: these tokens, certificates, and keys are real (but the cluster that generated them no longer exists). users: - name: Kube8 user: token: TXktVG9rZW4= - name: daas-demo user: token: QW5vdGhlci1Ub2tlbg== - name: docker-for-desktop user: client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2VENDQWRHZ0F3SUJBZ0lJUXFnWVFuQXB5TXd3RFFZSktvWklodmNOQVFFTEJRQXdFakVRTUE0R0ExVUUKQXhNSGEzVmlaUzFqWVRBZUZ3MHhPREF5TURZd01UQXlOREJhRncweE9UQXlNRFl3TVRBeU5ESmFNQzR4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVJNd0VRWURWUVFERXdwcmRXSmxMV0ZrYldsdU1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlkTk16UXBUc0x2T3l6YVB2RzRSRXFqamcrb0oKYmxrWlFnVkQ0bU5Rd1lpMDd3NDVEblRVeUZ6aU1zR1d4UVNsNFZ3RWxaS0duWGpoc0h4d21nNFI0NWY1TFFxaQo5aEFobi83eXFuRzFkOHhndEVnQnNtZGhuMldPbHdGZlNybDBiQU1rSElUb0xQL2J2cDJDbG4yb2pQcy9TK1FJClIrd0YzcVZaYXFXUmdodHlxdHA4RTNSenQ0RE0zNEJVSkNFUC83ZHRWS25HLytibGltTzNXQ29UeGt5TTVEYnIKNjVqRnBZUnRoZUZ6ZWh6djUwdjk1SEQ2MGVvUnh3TmppMTNldHo3OHEwdDcxU2Uwb0hXYUNkWENRLzhSTURwbworY2xud2xnbWZWcHNJUW53NWs0RmZ1RnIvSDFmbEVGK1NkWEs5WjdLNElSNXRLdWs3WElYT2M3eXh3SURBUUFCCm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3RFFZSktvWkkKaHZjTkFRRUxCUUFEZ2dFQkFBVW5YWXNuSG1VQmVuREpUVUVhZEl3YVNFVm1WNU5IYlFCUE5TQW5kU1VSMVEvdwpnUmlMRzFBc3gxazFnSG1ISFVwM004amV3K0NuZnpDUXNLbWE2SEE5NndRQzZHZUt1N0liTUo4TXhLNzJ5dS9JCmNJemJXZEZCZFFNbEhzUlowT0pESnYzVmxqdGNQckxYS3N3a0xMZHJXU1R2M1FXN0liNlZLWU5lc3NnanhVVFoKTFRuL2tnWWN2Z2dxeW8wOUZNOG8vMEpHbVk2TmpXYUgrUmFTNkNFOXNoWEwzaG5EWGdlRGlBR2p5WTIwMmlYYwp3KzdKWnZFaExyajlwYlhxOUxoYStkRGNBTThPK3VQUFJhS3J3Mmw4bVhvakdLSDVmVGJkT2tKZlJCbVRqMjRGCmxlN3NuRHBURlRrMmVnY2xyZTFNeGpnM2FsVzh1QXpsN0NJV1oyWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBeWROTXpRcFRzTHZPeXphUHZHNFJFcWpqZytvSmJsa1pRZ1ZENG1OUXdZaTA3dzQ1CkRuVFV5RnppTXNHV3hRU2w0VndFbFpLR25YamhzSHh3bWc0UjQ1ZjVMUXFpOWhBaG4vN3lxbkcxZDh4Z3RFZ0IKc21kaG4yV09sd0ZmU3JsMGJBTWtISVRvTFAvYnZwMkNsbjJvalBzL1MrUUlSK3dGM3FWWmFxV1JnaHR5cXRwOApFM1J6dDRETTM0QlVKQ0VQLzdkdFZLbkcvK2JsaW1PM1dDb1R4a3lNNURicjY1akZwWVJ0aGVGemVoenY1MHY5CjVIRDYwZW9SeHdOamkxM2V0ejc4cTB0NzFTZTBvSFdhQ2RYQ1EvOFJNRHBvK2NsbndsZ21mVnBzSVFudzVrNEYKZnVGci9IMWZsRUYrU2RYSzlaN0s0SVI1dEt1azdYSVhPYzd5eHdJREFRQUJBb0lCQUYxTG51bjloeGhnaU1ScApjV0pDWXdRRUxEL3pkTzZjbzA5Z2piUGVBeHVqclRnQWxDRjVvazhJbU11cnI1MWRlNnpFVTU0c3dLdVVrSWQ3CnpyVjRJWTdhMXFXYWtDQTg3cjQrSlVEakZXYk9oRGx5Tzg2VGVZNHNiUkNpNHNEeEg3ODZhSHdDZUMwdERSQjkKVVR0dDFQZHV3U0M4eFpNeHFMajJLSEpqSFBOT0dDOHZnL1JtanNTbWVxK3NpeFNuWVI2Z09iL3VyeVdYN3lQbwpVSmw0Y3RCZVBHZUdlcEViNWEzRGRSVmt3SUd2b0dub05IZFh2bmZyTHV6azhrQ3d4dGwvV3VGNTJWY1hnUWhjClhIbXJvaitjbEdMV2c3KzhYYUxMYTI4bUcvV1NOYVBULzRKNmEySDZZOWRITVV5Y2N5Tk5ycWU4ZnA4ZWlRTE8KY3JvSDFYa0NnWUVBMDRrcXB1NEp3YmtkbWNpQlhoTytxMVY1NGk4eWNmVUpJdG5FZFFaSFF3dnV4dDZsd0RmegptTHpvU0hTalVQcWZmRHFFNW8wU3cvSC9YMy80dlNETENIUG82aTFDbklhQlJqTmtjemRuWkZmNEZEMVEvNHc2Cm9sOEtvMlFyY1Y1VlFhclpBVUM5U3Z3WEI4MDZGWmNSVkhNMXFKQ2RrOFRKRFNiOTlCUWd2T3NDZ1lFQTlEK2MKbHhqRldSaHQxZWhoNm1KVXRLdjhsNEg1eHlLZWcwRmN4dGpHMmVHVE1xYk9uSk0zdlBpZk92MFFuMk9MUWpwaApyMllSMVpDSG5EYVpPS1J1bjRVaThmR0VsZG1NU3pDUFdWSURESzNuRUNjWjdacS9wT01OazE1bEU3bXJ5d1pYCmlnNkVKRWJpbU1NNTNuSVRFOTh5SWJ2bERaSnFhOEZKWkRmcmVwVUNnWUVBeXVVcDcrc3BtSktCL2RyL21zaTkKZllFQzR4djUrcXZaRTRCa213cG1sN3grVG1tSCtoS3dwN09wNkxWWFlIakRPRmk0MkpvL2dZcEFNODEvTzRpVQp0WXJYd0tXZzJwbDRyV2psMUUwejhsOGVKK3VZSVVUVGlLSTRoZmV5WTQ3am41VExpQlFjZkN2SHUwZnhpbnZYCnQzUzU1dkN1OCtrd0hsbGtCQlM2UWZrQ2dZRUFzTVg1UjBJZVVzVmplUldmQ0V2eWtuQ0hlQUFTRHhYM00zZnkKOWRlZTA4SjNEb203cjRhOUtIK29mc0Q1YnVKVXY3SVJVU2pHYjVNVEV2UlJJTFdoZXNLWThCS2txdSt3b2hxYgpKVUkrQXNjNkhHNndUVTlhdExPLzk1Q3lCdnl5WVZaTnRSV2NmY1R2NnpBZ2llWjErRVBwdkpDSXpySFJZL3VZCmFuZ3ViYUVDZ1lCRllEZG5QRExpK0dqTzRJWmM5RVgzbG9iS0YxcWJIVFpSRm41Q09Na1VWYWlNMWx1NFArZXAKZDluK0JCVjVhR0U4NjV3ZkhFMVJmd2thZ3ZhNU1seDM5MHdQenFrM1NuaEVhSjFSZ1BybUpxcVIrSUhUN0hMYgo0THFWWTVUNHVEUERCNTJ3MVJtOVJNeDVYalRHUS9yS29sT1pmWjdyTjVDbFo4UXNqeEx1eEE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= - name: minikube user: client-certificate: ~/.minikube/client.crt client-key: ~/.minikube/client.key - name: rke-admin user: client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2VENDQWRHZ0F3SUJBZ0lJUXFnWVFuQXB5TXd3RFFZSktvWklodmNOQVFFTEJRQXdFakVRTUE0R0ExVUUKQXhNSGEzVmlaUzFqWVRBZUZ3MHhPREF5TURZd01UQXlOREJhRncweE9UQXlNRFl3TVRBeU5ESmFNQzR4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVJNd0VRWURWUVFERXdwcmRXSmxMV0ZrYldsdU1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlkTk16UXBUc0x2T3l6YVB2RzRSRXFqamcrb0oKYmxrWlFnVkQ0bU5Rd1lpMDd3NDVEblRVeUZ6aU1zR1d4UVNsNFZ3RWxaS0duWGpoc0h4d21nNFI0NWY1TFFxaQo5aEFobi83eXFuRzFkOHhndEVnQnNtZGhuMldPbHdGZlNybDBiQU1rSElUb0xQL2J2cDJDbG4yb2pQcy9TK1FJClIrd0YzcVZaYXFXUmdodHlxdHA4RTNSenQ0RE0zNEJVSkNFUC83ZHRWS25HLytibGltTzNXQ29UeGt5TTVEYnIKNjVqRnBZUnRoZUZ6ZWh6djUwdjk1SEQ2MGVvUnh3TmppMTNldHo3OHEwdDcxU2Uwb0hXYUNkWENRLzhSTURwbworY2xud2xnbWZWcHNJUW53NWs0RmZ1RnIvSDFmbEVGK1NkWEs5WjdLNElSNXRLdWs3WElYT2M3eXh3SURBUUFCCm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3RFFZSktvWkkKaHZjTkFRRUxCUUFEZ2dFQkFBVW5YWXNuSG1VQmVuREpUVUVhZEl3YVNFVm1WNU5IYlFCUE5TQW5kU1VSMVEvdwpnUmlMRzFBc3gxazFnSG1ISFVwM004amV3K0NuZnpDUXNLbWE2SEE5NndRQzZHZUt1N0liTUo4TXhLNzJ5dS9JCmNJemJXZEZCZFFNbEhzUlowT0pESnYzVmxqdGNQckxYS3N3a0xMZHJXU1R2M1FXN0liNlZLWU5lc3NnanhVVFoKTFRuL2tnWWN2Z2dxeW8wOUZNOG8vMEpHbVk2TmpXYUgrUmFTNkNFOXNoWEwzaG5EWGdlRGlBR2p5WTIwMmlYYwp3KzdKWnZFaExyajlwYlhxOUxoYStkRGNBTThPK3VQUFJhS3J3Mmw4bVhvakdLSDVmVGJkT2tKZlJCbVRqMjRGCmxlN3NuRHBURlRrMmVnY2xyZTFNeGpnM2FsVzh1QXpsN0NJV1oyWT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBeWROTXpRcFRzTHZPeXphUHZHNFJFcWpqZytvSmJsa1pRZ1ZENG1OUXdZaTA3dzQ1CkRuVFV5RnppTXNHV3hRU2w0VndFbFpLR25YamhzSHh3bWc0UjQ1ZjVMUXFpOWhBaG4vN3lxbkcxZDh4Z3RFZ0IKc21kaG4yV09sd0ZmU3JsMGJBTWtISVRvTFAvYnZwMkNsbjJvalBzL1MrUUlSK3dGM3FWWmFxV1JnaHR5cXRwOApFM1J6dDRETTM0QlVKQ0VQLzdkdFZLbkcvK2JsaW1PM1dDb1R4a3lNNURicjY1akZwWVJ0aGVGemVoenY1MHY5CjVIRDYwZW9SeHdOamkxM2V0ejc4cTB0NzFTZTBvSFdhQ2RYQ1EvOFJNRHBvK2NsbndsZ21mVnBzSVFudzVrNEYKZnVGci9IMWZsRUYrU2RYSzlaN0s0SVI1dEt1azdYSVhPYzd5eHdJREFRQUJBb0lCQUYxTG51bjloeGhnaU1ScApjV0pDWXdRRUxEL3pkTzZjbzA5Z2piUGVBeHVqclRnQWxDRjVvazhJbU11cnI1MWRlNnpFVTU0c3dLdVVrSWQ3CnpyVjRJWTdhMXFXYWtDQTg3cjQrSlVEakZXYk9oRGx5Tzg2VGVZNHNiUkNpNHNEeEg3ODZhSHdDZUMwdERSQjkKVVR0dDFQZHV3U0M4eFpNeHFMajJLSEpqSFBOT0dDOHZnL1JtanNTbWVxK3NpeFNuWVI2Z09iL3VyeVdYN3lQbwpVSmw0Y3RCZVBHZUdlcEViNWEzRGRSVmt3SUd2b0dub05IZFh2bmZyTHV6azhrQ3d4dGwvV3VGNTJWY1hnUWhjClhIbXJvaitjbEdMV2c3KzhYYUxMYTI4bUcvV1NOYVBULzRKNmEySDZZOWRITVV5Y2N5Tk5ycWU4ZnA4ZWlRTE8KY3JvSDFYa0NnWUVBMDRrcXB1NEp3YmtkbWNpQlhoTytxMVY1NGk4eWNmVUpJdG5FZFFaSFF3dnV4dDZsd0RmegptTHpvU0hTalVQcWZmRHFFNW8wU3cvSC9YMy80dlNETENIUG82aTFDbklhQlJqTmtjemRuWkZmNEZEMVEvNHc2Cm9sOEtvMlFyY1Y1VlFhclpBVUM5U3Z3WEI4MDZGWmNSVkhNMXFKQ2RrOFRKRFNiOTlCUWd2T3NDZ1lFQTlEK2MKbHhqRldSaHQxZWhoNm1KVXRLdjhsNEg1eHlLZWcwRmN4dGpHMmVHVE1xYk9uSk0zdlBpZk92MFFuMk9MUWpwaApyMllSMVpDSG5EYVpPS1J1bjRVaThmR0VsZG1NU3pDUFdWSURESzNuRUNjWjdacS9wT01OazE1bEU3bXJ5d1pYCmlnNkVKRWJpbU1NNTNuSVRFOTh5SWJ2bERaSnFhOEZKWkRmcmVwVUNnWUVBeXVVcDcrc3BtSktCL2RyL21zaTkKZllFQzR4djUrcXZaRTRCa213cG1sN3grVG1tSCtoS3dwN09wNkxWWFlIakRPRmk0MkpvL2dZcEFNODEvTzRpVQp0WXJYd0tXZzJwbDRyV2psMUUwejhsOGVKK3VZSVVUVGlLSTRoZmV5WTQ3am41VExpQlFjZkN2SHUwZnhpbnZYCnQzUzU1dkN1OCtrd0hsbGtCQlM2UWZrQ2dZRUFzTVg1UjBJZVVzVmplUldmQ0V2eWtuQ0hlQUFTRHhYM00zZnkKOWRlZTA4SjNEb203cjRhOUtIK29mc0Q1YnVKVXY3SVJVU2pHYjVNVEV2UlJJTFdoZXNLWThCS2txdSt3b2hxYgpKVUkrQXNjNkhHNndUVTlhdExPLzk1Q3lCdnl5WVZaTnRSV2NmY1R2NnpBZ2llWjErRVBwdkpDSXpySFJZL3VZCmFuZ3ViYUVDZ1lCRllEZG5QRExpK0dqTzRJWmM5RVgzbG9iS0YxcWJIVFpSRm41Q09Na1VWYWlNMWx1NFArZXAKZDluK0JCVjVhR0U4NjV3ZkhFMVJmd2thZ3ZhNU1seDM5MHdQenFrM1NuaEVhSjFSZ1BybUpxcVIrSUhUN0hMYgo0THFWWTVUNHVEUERCNTJ3MVJtOVJNeDVYalRHUS9yS29sT1pmWjdyTjVDbFo4UXNqeEx1eEE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= - name: arn:aws:eks:us-east-1:123456789012:cluster/my-cluster user: exec: apiVersion: client.authentication.k8s.io/v1alpha1 args: - --region - us-east-1 - eks - get-token - --cluster-name - my-cluster command: aws env: - name: AWS_PROFILE value: my-company ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/CryptoHelperTests.cs ================================================ using Org.BouncyCastle.Crypto; using System; using System.Collections.Generic; using System.IO; using Xunit; using Xunit.Abstractions; using BCX509Certificate = Org.BouncyCastle.X509.X509Certificate; using X509Certificate2 = System.Security.Cryptography.X509Certificates.X509Certificate2; namespace KubeClient.Extensions.KubeConfig.Tests { using KubeClient.Extensions.KubeConfig.Models; using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Text; using TestCommon; /// /// Tests for . /// public class CryptoHelperTests : TestBase { /// /// Create a new test-suite. /// /// /// Output for the current test. /// public CryptoHelperTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that can load a native X509Certificate2 via PFX from the contents of PEM blocks. /// [Fact(DisplayName = "Can load certificate via PFX from PEM")] public void CanBuildPfx() { FileInfo configFile = new FileInfo( Path.Combine("Configurations", "valid1.yml") ); K8sConfig kubeConfig = K8sConfig.Load(configFile); UserIdentity targetUserIdentity = kubeConfig.UserIdentities.FirstOrDefault(userIdentity => userIdentity.Name == "docker-for-desktop"); Assert.NotNull(targetUserIdentity); Assert.NotNull(targetUserIdentity.Config); Assert.NotNull(targetUserIdentity.Config.ClientCertificateData); Assert.NotNull(targetUserIdentity.Config.ClientKeyData); string certificatePem = Encoding.ASCII.GetString( Convert.FromBase64String(targetUserIdentity.Config.ClientCertificateData) ); string keyPem = Encoding.ASCII.GetString( Convert.FromBase64String(targetUserIdentity.Config.ClientKeyData) ); string pfxPassword = "test_password"; byte[] pfxData = CryptoHelper.BuildPfx(certificatePem, keyPem, pfxPassword); Assert.NotNull(pfxData); Assert.NotEmpty(pfxData); X509Certificate2 nativeCertificate; #if !NET9_0_OR_GREATER nativeCertificate = new X509Certificate2(pfxData, pfxPassword, X509KeyStorageFlags.EphemeralKeySet); #else // !NET9_0_OR_GREATER nativeCertificate = X509CertificateLoader.LoadPkcs12(pfxData, pfxPassword, X509KeyStorageFlags.EphemeralKeySet); #endif // !NET9_0_OR_GREATER using (nativeCertificate) { Assert.True(nativeCertificate.HasPrivateKey); } } /// /// Verify that can enumerate the contents of PEM blocks. /// /// /// The base name for the test's PEM files. /// /// /// The password for the test's PEM files. /// /// /// The thumbprints of certificates that are expected to be found in the test's PEM files. /// /// /// The number of asymmetric crypto key-pairs that are expected to be contained in the test's PEM files. /// [Theory(DisplayName = "Can enumerate certificate PEM contents ")] [InlineData("test-cert-01", "simple_password", new string[] { "5374FA8B5EF2B321059442791FE3CF091BB175BF" }, 1)] public void CanEnumerateCertificatePemContents(string pemBaseName, string pemPassword, string[] expectedCertificateThumbprints, int expectedKeyCount) { string certPemFilePath = Path.Combine("Certificates", $"{pemBaseName}.pem"); string certPemData = File.ReadAllText(certPemFilePath); string keyPemFilePath = Path.Combine("Certificates", $"{pemBaseName}-key.pem"); string keyPemData = File.ReadAllText(keyPemFilePath); HashSet remainingCertificateThumbprints = new HashSet(expectedCertificateThumbprints); int remainingKeyCount = expectedKeyCount; foreach (object pemObject in CryptoHelper.EnumeratePemObjects(pemPassword, certPemData, keyPemData)) { if (pemObject is BCX509Certificate certificate) { string thumbprint = CryptoHelper.GetThumbprint(certificate); TestOutput.WriteLine($"Found certificate in PEM data: '{thumbprint}'"); remainingCertificateThumbprints.Remove(thumbprint); } else if (pemObject is AsymmetricCipherKeyPair keyPair) { TestOutput.WriteLine($"Found asymmetric key-pair in PEM data: Public='{keyPair.Public}', Private='{keyPair.Private}'"); --remainingKeyCount; } else throw new Exception($"Unexpected PEM object: '{pemObject}'"); } Assert.Empty(remainingCertificateThumbprints); Assert.Equal(0, remainingKeyCount); } } } ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/DeserializationTests.cs ================================================ using System.IO; using System.Linq; using Xunit; using Xunit.Abstractions; namespace KubeClient.Extensions.KubeConfig.Tests { using TestCommon; /// /// Tests for deserialisation of Kubernetes client configuration. /// public class DeserializationTests : TestBase { /// /// Create a new config-deserialisation test suite. /// /// /// Output for the current test. /// public DeserializationTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that the configuration loader can parse valid configuration from YAML. /// [InlineData("valid1")] [Theory(DisplayName = "Can load valid configuration ")] public void CanLoadValidConfig(string configName) { FileInfo configFile = new FileInfo( Path.Combine("Configurations", $"{configName}.yml") ); K8sConfig kubeConfig = K8sConfig.Load(configFile); Assert.Equal("v1", kubeConfig.ApiVersion); Assert.Equal("Config", kubeConfig.Kind); Assert.Equal("docker-for-desktop", kubeConfig.CurrentContextName); Assert.Equal(5, kubeConfig.Contexts.Count); Assert.Equal(5, kubeConfig.Clusters.Count); Assert.Equal(6, kubeConfig.UserIdentities.Count); } [InlineData("valid1")] [Theory(DisplayName = "Can correctly deserialize credential plugin configuration")] public void CanDeserializeCredentialPluginConfiguration(string configName) { FileInfo configFile = new FileInfo( Path.Combine("Configurations", $"{configName}.yml") ); K8sConfig kubeConfig = K8sConfig.Load(configFile); var awsUser = kubeConfig.UserIdentities.FirstOrDefault( user => user.Name == "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster"); Assert.Equal("aws", awsUser?.Config?.Exec?.Command); Assert.Equal(6, awsUser?.Config?.Exec?.Arguments?.Count); Assert.Equal(1, awsUser?.Config?.Exec?.EnvironmentVariables.Count); } } } ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/K8sConfigLocationTests.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using System.Text; using KubeClient.TestCommon; using Xunit; using Xunit.Abstractions; namespace KubeClient.Extensions.KubeConfig.Tests { //TODO: A better pattern here would probably be to use https://github.com/AArnott/Xunit.SkippableFact so tests for the wrong OS get marked as Inconclusive? // Not sure how CI is set up and if that would cause build failures public class K8sConfigLocationTests : TestBase { const string UserProfile = @"C:\Users\me"; const string HomeDrive = @"Z:"; const string HomePath = @"\"; const string Home = @"G:\"; [Fact] public void LinuxUsesHomeEnvironmentVariable() { if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Environment.SetEnvironmentVariable("USERPROFILE", UserProfile); var home = Environment.GetEnvironmentVariable("HOME"); var config = K8sConfig.Locate(); Assert.Equal(Path.Combine(home, ".kube", "config"), config); } } [Fact] public void WindowsUsesHomeFirst() { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Environment.SetEnvironmentVariable("USERPROFILE", UserProfile); Environment.SetEnvironmentVariable("HOMEDRIVE", HomeDrive); Environment.SetEnvironmentVariable("HOMEPATH", HomePath); Environment.SetEnvironmentVariable("HOME", Home); var config = K8sConfig.Locate(); Assert.Equal(Path.Combine(Home, ".kube", "config"), config); } } [Fact] public void WindowsUsesHomeDriveAndPathBeforeUserProfile() { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Environment.SetEnvironmentVariable("HOME", String.Empty); Environment.SetEnvironmentVariable("USERPROFILE", UserProfile); Environment.SetEnvironmentVariable("HOMEDRIVE", HomeDrive); Environment.SetEnvironmentVariable("HOMEPATH", HomePath); var config = K8sConfig.Locate(); Assert.Equal(Path.Combine(HomeDrive + HomePath, ".kube", "config"), config); } } [Fact] public void WindowsUsesUserProfileAsLastOption() { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Environment.SetEnvironmentVariable("HOME", String.Empty); Environment.SetEnvironmentVariable("HOMEDRIVE", String.Empty); Environment.SetEnvironmentVariable("HOMEPATH", String.Empty); Environment.SetEnvironmentVariable("USERPROFILE", UserProfile); var config = K8sConfig.Locate(); Assert.Equal(Path.Combine(UserProfile, ".kube", "config"), config); } } public K8sConfigLocationTests(ITestOutputHelper testOutput) : base(testOutput) { } } } ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/KubeClient.Extensions.KubeConfig.Tests.csproj ================================================  net7.0;net8.0;net9.0;net10.0 PreserveNewest PreserveNewest PreserveNewest ================================================ FILE: test/KubeClient.Extensions.KubeConfig.Tests/OptionsTests.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using System.IO; using Xunit; using Xunit.Abstractions; namespace KubeClient.Extensions.KubeConfig.Tests { using Models; using TestCommon; /// /// Tests for population of KubeClientOptions from Kubernetes client configuration. /// public class OptionsTests : TestBase { /// /// Create a new options-population test suite. /// /// /// Output for the current test. /// public OptionsTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that the configuration loader can parse valid configuration from YAML. /// [InlineData("valid1", "rke")] [Theory(DisplayName = "Can resolve valid options from client configuration ")] public void CanLoadValidConfig(string configName, string kubeContextName) { ServiceCollection services = new ServiceCollection(); services.AddOptions(); services.AddKubeClientOptionsFromKubeConfig( kubeConfigFileName: Path.Combine("Configurations", $"{configName}.yml"), kubeContextName: kubeContextName ); using (ServiceProvider serviceProvider = services.BuildServiceProvider()) { IOptions options = serviceProvider.GetRequiredService>(); Assert.NotNull(options); } } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/KubeClient.Extensions.WebSockets.Tests.csproj ================================================  net7.0;net8.0;net9.0;net10.0 false true ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/Logging/TestOutputLogger.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Reactive.Disposables; using Xunit.Abstractions; namespace KubeClient.Extensions.WebSockets.Tests.Logging { /// /// An implementation of that writes to the output of the current Xunit test. /// sealed class TestOutputLogger : ILogger { /// /// Create a new . /// /// /// The output for the current test. /// /// /// The logger's category name. /// /// /// The logger's minimum log level. /// public TestOutputLogger(ITestOutputHelper testOutput, string loggerCategory, LogLevel minLogLevel) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); if (String.IsNullOrWhiteSpace(loggerCategory)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'loggerCategory'.", nameof(loggerCategory)); TestOutput = testOutput; LoggerCategory = loggerCategory; MinLogLevel = minLogLevel; } /// /// The output for the current test. /// public ITestOutputHelper TestOutput { get; } /// /// The logger's category name. /// public string LoggerCategory { get; } /// /// The logger's minimum log level. /// public LogLevel MinLogLevel { get; } /// /// Emit a log entry. /// /// /// The log entry's level. /// /// /// The log entry's associated event Id. /// /// /// The log entry to be written. Can be also an object. /// /// /// The exception (if any) related to the log entry. /// /// /// A function that creates a string log message from the and . /// public void Log(LogLevel level, EventId eventId, TState state, Exception exception, Func formatter) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); TestOutput.WriteLine(String.Format("[{0}] {1}: {2}", level, LoggerCategory, formatter(state, exception) )); } /// /// Check if the given is enabled. /// /// /// The level to be checked. /// /// /// true if enabled; otherwise, false. /// public bool IsEnabled(LogLevel logLevel) => logLevel >= MinLogLevel; /// /// Begin a logical operation scope. /// /// /// An identifier for the scope. /// /// /// An that ends the logical operation scope when disposed. /// public IDisposable BeginScope(TState state) => Disposable.Empty; } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/Logging/TestOutputLoggerProvider.cs ================================================ using Microsoft.Extensions.Logging; using System; using Xunit.Abstractions; namespace KubeClient.Extensions.WebSockets.Tests.Logging { /// /// Logger provider for logging to Xunit test output. /// sealed class TestOutputLoggerProvider : ILoggerProvider { /// /// Create a new . /// /// /// The output for the current test. /// /// /// The logger's minimum log level. /// public TestOutputLoggerProvider(ITestOutputHelper testOutput, LogLevel minLogLevel) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); TestOutput = testOutput; MinLogLevel = minLogLevel; } /// /// Dispose of resources being used by the logger provider. /// public void Dispose() { } /// /// The output for the current test. /// ITestOutputHelper TestOutput { get; } /// /// The logger's minimum log level. /// public LogLevel MinLogLevel { get; } /// /// Create a new logger. /// /// /// The logger category name. /// /// /// The logger, as an . /// public ILogger CreateLogger(string categoryName) => new TestOutputLogger(TestOutput, categoryName, MinLogLevel); } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/Logging/TestOutputLoggingExtensions.cs ================================================ using Microsoft.Extensions.Logging; using System; using Xunit.Abstractions; namespace KubeClient.Extensions.WebSockets.Tests.Logging { /// /// Extension methods for logging to Xunit text output. /// public static class TestOutputLoggingExtensions { /// /// Log to test output. /// /// /// The global logging configuration. /// /// /// Output for the current test. /// /// /// The minimum level to log at. /// public static void AddTestOutput(this ILoggingBuilder logging, ITestOutputHelper testOutput, LogLevel minLogLevel = LogLevel.Information) { if (logging == null) throw new ArgumentNullException(nameof(logging)); if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); logging.AddProvider( new TestOutputLoggerProvider(testOutput, minLogLevel) ); } /// /// Log to test output. /// /// /// The logger factory. /// /// /// Output for the current test. /// /// /// The minimum level to log at. /// /// /// The logger factory (enables inline use / method-chaining). /// public static ILoggerFactory AddTestOutput(this ILoggerFactory loggers, ITestOutputHelper testOutput, LogLevel minLogLevel = LogLevel.Information) { if (loggers == null) throw new ArgumentNullException(nameof(loggers)); if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); loggers.AddProvider( new TestOutputLoggerProvider(testOutput, minLogLevel) ); return loggers; } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/PodExecTests.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Diagnostics; using System.IO; using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; namespace KubeClient.Extensions.WebSockets.Tests { /// /// Tests for 's exec-in-pod functionality. /// public class PodExecTests : WebSocketTestBase { /// /// Create a new exec-in-pod test suite. /// /// /// Output for the current test. /// public PodExecTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that the client can request execution of a command in a pod's default container, over a raw WebSocket connection, with only the STDOUT stream enabled. /// [Fact(DisplayName = "Can exec in pod's default container, raw WebSocket, STDOUT only")] public async Task Exec_DefaultContainer_Raw_StdOut() { const string expectedOutput = "This is text sent to STDOUT."; TestTimeout( TimeSpan.FromSeconds(5) ); await Host.StartAsync(TestCancellation); using (KubeApiClient client = CreateTestClient()) { WebSocket clientSocket = await client.PodsV1().ExecAndConnectRaw( podName: "pod1", command: "/bin/bash", stdin: true, stdout: true, stderr: true ); Assert.Equal(K8sChannelProtocol.V1, clientSocket.SubProtocol); // For WebSockets, the Kubernetes API defaults to the binary channel (v1) protocol. using (clientSocket) { Log.LogInformation("Waiting for server-side WebSocket."); WebSocket serverSocket = await WebSocketTestAdapter.AcceptedPodExecV1Connection; int bytesSent = await SendMultiplexed(serverSocket, K8sChannel.StdOut, expectedOutput); Log.LogInformation("Sent {ByteCount} bytes to server socket; receiving from client socket...", bytesSent); (string receivedText, byte streamIndex, int bytesReceived) = await ReceiveTextMultiplexed(clientSocket); Log.LogInformation("Received {ByteCount} bytes from client socket ('{ReceivedText}', stream {StreamIndex}).", bytesReceived, receivedText, streamIndex); Assert.Equal(K8sChannel.StdOut, streamIndex); Assert.Equal(expectedOutput, receivedText); await Disconnect(clientSocket, serverSocket); WebSocketTestAdapter.Done(); } } } /// /// Verify that the client can request execution of a command in a pod's default container, multiplexed, with all streams enabled. /// [Fact(DisplayName = "Can exec in pod's default container, multiplexed, all streams")] public async Task Exec_DefaultContainer_Multiplexed_AllStreams() { const string expectedPrompt = "/root # "; const string expectedCommand = "ls -l /root"; TestTimeout( TimeSpan.FromSeconds(5) ); await Host.StartAsync(TestCancellation); using (KubeApiClient client = CreateTestClient()) { K8sMultiplexer multiplexer = await client.PodsV1().ExecAndConnect( podName: "pod1", command: "/bin/bash", stdin: true, stdout: true, stderr: true ); using (multiplexer) { Stream stdin = multiplexer.GetStdIn(); Stream stdout = multiplexer.GetStdOut(); Log.LogInformation("Waiting for server-side WebSocket."); WebSocket serverSocket = await WebSocketTestAdapter.AcceptedPodExecV1Connection; Log.LogInformation("Server sends prompt."); await SendMultiplexed(serverSocket, K8sChannel.StdOut, expectedPrompt); Log.LogInformation("Server sent prompt."); Log.LogInformation("Client expects prompt."); byte[] receiveBuffer = new byte[2048]; int bytesReceived = await stdout.ReadAsync(receiveBuffer, 0, receiveBuffer.Length, TestCancellation); string prompt = Encoding.ASCII.GetString(receiveBuffer, 0, bytesReceived); Assert.Equal(expectedPrompt, prompt); Log.LogInformation("Client got expected prompt."); Log.LogInformation("Client sends command."); byte[] sendBuffer = Encoding.ASCII.GetBytes(expectedCommand); await stdin.WriteAsync(sendBuffer, 0, sendBuffer.Length, TestCancellation); Log.LogInformation("Client sent command."); Log.LogInformation("Server expects command."); (string command, byte streamIndex, int totalBytes) = await ReceiveTextMultiplexed(serverSocket); Assert.Equal(K8sChannel.StdIn, streamIndex); Assert.Equal(expectedCommand, command); Log.LogInformation("Server got expected command."); Task closeServerSocket = WaitForClose(serverSocket, socketType: "server"); Log.LogInformation("Close enough; we're done."); await multiplexer.Shutdown(TestCancellation); await closeServerSocket; WebSocketTestAdapter.Done(); } } } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/Server/Controllers/PodExecController.cs ================================================ using Microsoft.AspNetCore.Mvc; using System; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Extensions.WebSockets.Tests.Server.Controllers { /// /// Controller for the mock Kubernetes exec-in-pod API. /// [Route("api/v1")] public class PodExecController : Controller { /// /// Create a new . /// /// /// The adapter used to capture sockets accepted by the test server and provide them to the calling test. /// public PodExecController(WebSocketTestAdapter webSocketTestAdapter) { if (webSocketTestAdapter == null) throw new ArgumentNullException(nameof(webSocketTestAdapter)); WebSocketTestAdapter = webSocketTestAdapter; } /// /// The adapter used to capture sockets accepted by the test server and provide them to the calling test. /// WebSocketTestAdapter WebSocketTestAdapter { get; } /// /// Mock Kubernetes API: exec-in-pod. /// /// /// The target pod's containing namespace. /// /// /// The target pod's name. /// [Route("namespaces/{kubeNamespace}/pods/{podName}/exec")] public async Task Exec(string kubeNamespace, string podName) { if (!HttpContext.WebSockets.IsWebSocketRequest) return BadRequest("Exec requires WebSockets"); WebSocket webSocket = await HttpContext.WebSockets.AcceptWebSocketAsync( subProtocol: K8sChannelProtocol.V1 ); WebSocketTestAdapter.AcceptedPodExecV1Connection.AcceptServerSocket(webSocket); await WebSocketTestAdapter.TestComplete; return Ok(); } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/Server/Controllers/PodPortForwardController.cs ================================================ using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Extensions.WebSockets.Tests.Server.Controllers { /// /// Controller for the mock Kubernetes pod-port-forward API. /// [Route("api/v1")] public class PodPortForwardController : Controller { /// /// Create a new . /// /// /// The adapter used to capture sockets accepted by the test server and provide them to the calling test. /// public PodPortForwardController(WebSocketTestAdapter webSocketTestAdapter) { if (webSocketTestAdapter == null) throw new ArgumentNullException(nameof(webSocketTestAdapter)); WebSocketTestAdapter = webSocketTestAdapter; } /// /// The adapter used to capture sockets accepted by the test server and provide them to the calling test. /// WebSocketTestAdapter WebSocketTestAdapter { get; } /// /// Mock Kubernetes API: port-forward for pod. /// /// /// The target pod's containing namespace. /// /// /// The target pod's name. /// /// /// The port(s) to forward to the pod. /// [Route("namespaces/{kubeNamespace}/pods/{podName}/portforward")] public async Task Exec(string kubeNamespace, string podName, IEnumerable ports) { if (!HttpContext.WebSockets.IsWebSocketRequest) return BadRequest("PortForward requires WebSockets"); WebSocket webSocket = await HttpContext.WebSockets.AcceptWebSocketAsync( subProtocol: K8sChannelProtocol.V1 ); WebSocketTestAdapter.AcceptedPodPortForwardV1Connection.AcceptServerSocket(webSocket); await WebSocketTestAdapter.TestComplete; return Ok(); } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/Server/Startup.cs ================================================ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; namespace KubeClient.Extensions.WebSockets.Tests.Server { /// /// Startup logic for the KubeClient WebSockets test server. /// public class Startup { /// /// Create a new . /// public Startup() { } /// /// Configure application services. /// /// /// The service collection to configure. /// public void ConfigureServices(IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); services.AddLogging(logging => { logging.ClearProviders(); // Logger provider will be added by the calling test. }); services.AddMvc(mvc => { mvc.EnableEndpointRouting = true; }); } /// /// Configure the application pipeline. /// /// /// The application pipeline builder. /// public void Configure(IApplicationBuilder app) { app.UseWebSockets(new WebSocketOptions { KeepAliveInterval = TimeSpan.FromSeconds(5), }); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapDefaultControllerRoute(); }); } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/Server/WebSocketTestAdapter.cs ================================================ using System; using System.Net.WebSockets; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace KubeClient.Extensions.WebSockets.Tests.Server { /// /// Adapter used to capture WebSockets accepted by the test server and provide them to calling test. /// /// /// Each AcceptedXXXConnection property returns an awaitable object that yields a the server-side WebSocket once a connection has been accepted. /// /// All server-side WebSockets will be closed when is called. /// public class WebSocketTestAdapter { /// /// Completion source for the task. /// readonly TaskCompletionSource _testCompletion = new TaskCompletionSource(); /// /// A that completes when the test is complete (providing is called). /// public Task TestComplete => _testCompletion.Task; /// /// await server-side acceptance of a WebSocket connection for the exec-in-pod (v1) API. /// public ServerSocketAcceptance AcceptedPodExecV1Connection { get; } = new ServerSocketAcceptance(); /// /// await server-side acceptance of a WebSocket connection for the pod-port-forward (v1) API. /// public ServerSocketAcceptance AcceptedPodPortForwardV1Connection { get; } = new ServerSocketAcceptance(); /// /// Mark the current test as complete, closing all server-side sockets. /// public void Done() => _testCompletion.SetResult(true); /// /// An object that enables awaiting server-side acceptance of a WebSocket connection. /// /// /// Simply await this object to wait for the server socket to be accepted. /// public class ServerSocketAcceptance { /// /// Completion source for the task. /// readonly TaskCompletionSource _completion = new TaskCompletionSource(); /// /// A that completes when the server accepts a WebSocket connection (i.e. when or is called). /// public Task Task => _completion.Task; /// /// Notify the calling test that the server has accepted a WebSocket connection. /// /// /// The server-side . /// public void AcceptServerSocket(WebSocket serverSocket) { if (serverSocket == null) throw new ArgumentNullException(nameof(serverSocket)); _completion.SetResult(serverSocket); } /// /// Notify the calling test that the server has rejected a WebSocket connection. /// /// /// An representing the reason that the connection was rejected. /// public void RejectServerSocket(Exception reason) { if (reason == null) throw new ArgumentNullException(nameof(reason)); _completion.SetException(reason); } /// /// Get an awaiter for the socket-acceptance task. /// /// /// The . /// public TaskAwaiter GetAwaiter() => Task.GetAwaiter(); } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/TestBase.cs ================================================ namespace KubeClient.Extensions.WebSockets.Tests { using System; using System.Diagnostics; using System.Reactive.Disposables; using System.Reflection; using System.Threading; using Logging; using Microsoft.Extensions.Logging; using Xunit; using Xunit.Abstractions; /// /// The base class for test suites. /// public abstract class TestBase : IDisposable { /// /// Create a new test-suite. /// /// /// Output for the current test. /// protected TestBase(ITestOutputHelper testOutput) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); // We *must* have a synchronisation context for the test, or we'll see random deadlocks. if (SynchronizationContext.Current == null) { SynchronizationContext.SetSynchronizationContext( new SynchronizationContext() ); } Disposal.Add(TestCancellationSource); TestOutput = testOutput; LoggerFactory = new LoggerFactory().AddTestOutput(TestOutput, MinLogLevel); Log = LoggerFactory.CreateLogger("CurrentTest"); // Ugly hack to get access to the current test. CurrentTest = (ITest) TestOutput.GetType() .GetField("test", BindingFlags.NonPublic | BindingFlags.Instance) .GetValue(TestOutput); Assert.True(CurrentTest != null, "Cannot retrieve current test from ITestOutputHelper."); Disposal.Add( Log.BeginScope("CurrentTest {CurrentTest}", CurrentTest.DisplayName) ); } /// /// Finaliser for . /// ~TestBase() { Dispose(false); } /// /// Dispose of resources being used by the test suite. /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// /// Dispose of resources being used by the test suite. /// /// /// Explicit disposal? /// protected virtual void Dispose(bool disposing) { if (disposing) { try { Disposal.Dispose(); } finally { if (Log is IDisposable logDisposal) logDisposal.Dispose(); } } } /// /// A representing resources used by the test. /// protected CompositeDisposable Disposal { get; } = new CompositeDisposable(); /// /// The source for cancellation tokens used by the test. /// protected CancellationTokenSource TestCancellationSource { get; } = new CancellationTokenSource(); /// /// A that can be used to cancel asynchronous operations. /// /// protected CancellationToken TestCancellation => TestCancellationSource.Token; /// /// Output for the current test. /// protected ITestOutputHelper TestOutput { get; } /// /// A representing the current test. /// protected ITest CurrentTest { get; } /// /// The logger for the current test. /// protected ILogger Log { get; } /// /// The logger factory for the current test. /// protected ILoggerFactory LoggerFactory { get; } /// /// The logging level for the current test. /// protected virtual LogLevel MinLogLevel => LogLevel.Information; /// /// Cancel the test cancellation token. /// protected void CancelTest() => TestCancellationSource.Cancel(); /// /// Cancel the test after the specified timeout. /// /// /// A representing the timeout period. /// /// /// Schedule cancellation, even if a debugger is attached? /// protected void TestTimeout(TimeSpan timeout, bool whenDebugging = false) { if (whenDebugging || !Debugger.IsAttached) TestCancellationSource.CancelAfter(timeout); } } } ================================================ FILE: test/KubeClient.Extensions.WebSockets.Tests/WebSocketTestBase.cs ================================================ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Net.WebSockets; using System.Text; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; namespace KubeClient.Extensions.WebSockets.Tests { using Logging; using Server; /// /// The base class for Kubernetes WebSocket test suites. /// public abstract class WebSocketTestBase : TestBase { /// /// Get the number of the next available TCP port on the loopback address. /// static int GetNextLocalTcpPort() { // Slightly hacky, but haven't found a better way. Later, we should switch these tests over to use the ASP.NET Test Server. TcpListener tcpListener = new TcpListener( localaddr: IPAddress.Loopback, port: 0 // auto-assign port ); try { tcpListener.Start(); IPEndPoint localEndPoint = (IPEndPoint)tcpListener.LocalEndpoint; return localEndPoint.Port; } finally { tcpListener.Stop(); } } /// /// Create a new . /// /// /// Output for the current test. /// protected WebSocketTestBase(ITestOutputHelper testOutput) : base(testOutput) { int port = GetNextLocalTcpPort(); BaseAddress = new Uri($"http://localhost:{port}"); WebSocketBaseAddress = new Uri($"ws://localhost:{port}"); Host = WebHost.CreateDefaultBuilder() .UseStartup() .ConfigureServices(ConfigureTestServerServices) .ConfigureLogging(ConfigureTestServerLogging) .UseUrls(BaseAddress.AbsoluteUri) .Build(); Disposal.Add(Host); } /// /// The test server's base address (http://). /// protected Uri BaseAddress { get; } /// /// The test server's base WebSockets address (ws://). /// protected Uri WebSocketBaseAddress { get; } /// /// The test server's web host. /// protected IWebHost Host { get; } /// /// Test adapter for accepting web sockets. /// protected WebSocketTestAdapter WebSocketTestAdapter { get; } = new WebSocketTestAdapter(); /// /// Create a that issues requests against the test server. /// /// /// The configured . /// protected KubeApiClient CreateTestClient() { return KubeApiClient.Create(new KubeClientOptions { ApiEndPoint = BaseAddress, KubeNamespace = "default", LoggerFactory = LoggerFactory // No authentication. }); } /// /// Configure services for the test server. /// /// /// The service collection to configure. /// protected virtual void ConfigureTestServerServices(IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); // Inject WebSocketTestData. services.AddSingleton(WebSocketTestAdapter); } /// /// Configure logging for the test server. /// /// /// The logger factory to configure. /// protected virtual void ConfigureTestServerLogging(ILoggingBuilder logging) { if (logging == null) throw new ArgumentNullException(nameof(logging)); logging.AddTestOutput(TestOutput, MinLogLevel); } /// /// Asynchronously disconnect client and server WebSockets using the standard handshake. /// /// /// The client-side . /// /// /// The server-side . /// /// /// An optional value indicating the reason for disconnection. /// /// Defaults to . /// /// /// An optional textual description of the reason for disconnection. /// /// Defaults to "Normal Closure". /// /// /// A representing the asynchronous operation. /// protected async Task Disconnect(WebSocket clientSocket, WebSocket serverSocket, WebSocketCloseStatus closeStatus = WebSocketCloseStatus.NormalClosure, string closeStatusDescription = "Normal Closure") { if (clientSocket == null) throw new ArgumentNullException(nameof(clientSocket)); if (serverSocket == null) throw new ArgumentNullException(nameof(serverSocket)); Log.LogInformation("Disconnecting..."); // Asynchronously perform the server's half of the handshake (the call to clientSocket.CloseAsync will block until it receives the server's response). Task closeServerSocket = WaitForClose(serverSocket, "server", closeStatus, closeStatusDescription); Log.LogInformation("Closing client socket..."); await clientSocket.CloseAsync(closeStatus, closeStatusDescription, TestCancellation).ConfigureAwait(false); Assert.Equal(WebSocketState.Closed, clientSocket.State); Log.LogInformation("Client socket closed (CloseStatus = '{CloseStatus}', CloseStatusDescription = '{CloseStatusDescription}').", clientSocket.CloseStatus, clientSocket.CloseStatusDescription); await closeServerSocket.ConfigureAwait(false); Assert.Equal(WebSocketState.Closed, serverSocket.State); Log.LogInformation("Disconnected."); Assert.Equal(closeStatus, clientSocket.CloseStatus); Assert.Equal(clientSocket.CloseStatus, serverSocket.CloseStatus); Assert.Equal(closeStatusDescription, clientSocket.CloseStatusDescription); Assert.Equal(clientSocket.CloseStatusDescription, serverSocket.CloseStatusDescription); } /// /// Asynchronously wait for and respond to the first half the standard WebSocket-close handshake. /// /// /// The target . /// /// /// A short textual description of the socket type (e.g. "server" or "client"). /// /// /// An optional value indicating the reason for disconnection. /// /// Defaults to . /// /// /// An optional textual description of the reason for disconnection. /// /// Defaults to "Normal Closure". /// /// /// A representing the asynchronous operation. /// protected Task WaitForClose(WebSocket socket, string socketType, WebSocketCloseStatus closeStatus = WebSocketCloseStatus.NormalClosure, string closeStatusDescription = "Normal Closure") { if (socket == null) throw new ArgumentNullException(nameof(socket)); if (String.IsNullOrWhiteSpace(socketType)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'socketType'.", nameof(socketType)); Log.LogInformation("{SocketType} socket waiting for Close message...", socketType); ArraySegment receiveBuffer = new byte[1024]; Task closeSocketTask = socket.ReceiveAsync(receiveBuffer, TestCancellation); return closeSocketTask.ContinueWith(async received => { if (received.IsFaulted) Log.LogError(EventIds.ErrorClosingServerSocket, received.Exception.Flatten().InnerExceptions[0], "Server socket operation to receive Close message failed."); else if (received.IsCanceled) Log.LogWarning("{SocketType} socket operation to receive Close message was canceled.", socketType); else { Log.LogInformation("Received {MessageType} message from {SocketType} socket (expecting {ExpectedMessageType}).", received.Result.MessageType, socketType, WebSocketMessageType.Close ); if (received.Result.MessageType == WebSocketMessageType.Close) { Log.LogInformation("Closing {SocketType} socket (with status {CloseStatus})...", socketType, received.Result.CloseStatus); await socket.CloseAsync(closeStatus, closeStatusDescription, TestCancellation); Log.LogInformation("{SocketType} socket closed.", socketType); } Assert.Equal(WebSocketMessageType.Close, received.Result.MessageType); } }); } /// /// Send text to a multiplexed substream over the specified WebSocket. /// /// /// The target . /// /// /// The 0-based index of the target substream. /// /// /// The text to send. /// /// /// The text encoding to use (defaults to UTF8). /// /// /// The number of bytes sent to the WebSocket. /// protected async Task SendMultiplexed(WebSocket webSocket, byte streamIndex, string text, Encoding encoding = null) { if (webSocket == null) throw new ArgumentNullException(nameof(webSocket)); if (text == null) throw new ArgumentNullException(nameof(text)); if (encoding == null) encoding = Encoding.UTF8; byte[] payload = encoding.GetBytes(text); byte[] sendBuffer = new byte[payload.Length + 1]; sendBuffer[0] = streamIndex; Array.Copy(payload, 0, sendBuffer, 1, payload.Length); await webSocket.SendAsync(sendBuffer, WebSocketMessageType.Binary, endOfMessage: true, cancellationToken: TestCancellation ); return sendBuffer.Length; } /// /// Receive text from a multiplexed substream over the specified WebSocket. /// /// /// The target . /// /// /// The text to send. /// /// /// The text encoding to use (defaults to UTF8). /// /// /// A tuple containing the received text, 0-based substream index, and total bytes received. /// protected async Task<(string text, byte streamIndex, int totalBytes)> ReceiveTextMultiplexed(WebSocket webSocket, Encoding encoding = null) { if (webSocket == null) throw new ArgumentNullException(nameof(webSocket)); if (encoding == null) encoding = Encoding.UTF8; byte[] receivedData; using (MemoryStream buffer = new MemoryStream()) { byte[] receiveBuffer = new byte[1024]; WebSocketReceiveResult receiveResult = await webSocket.ReceiveAsync(receiveBuffer, TestCancellation); if (receiveResult.MessageType != WebSocketMessageType.Binary) throw new IOException($"Received unexpected WebSocket message of type '{receiveResult.MessageType}'."); buffer.Write(receiveBuffer, 0, receiveResult.Count); while (!receiveResult.EndOfMessage) { receiveResult = await webSocket.ReceiveAsync(receiveBuffer, TestCancellation); buffer.Write(receiveBuffer, 0, receiveResult.Count); } buffer.Flush(); receivedData = buffer.ToArray(); } return ( text: encoding.GetString(receivedData, 1, receivedData.Length - 1), streamIndex: receivedData[0], totalBytes: receivedData.Length ); } /// /// Event Id constants used in WebSocket tests. /// protected static class EventIds { /// /// An error occurred while closing the server-side socket. /// public static readonly EventId ErrorClosingServerSocket = new EventId(1000, nameof(ErrorClosingServerSocket)); } } } ================================================ FILE: test/KubeClient.TestCommon/Http/Testability/MessageExtensions.cs ================================================ using System; using System.Net; using System.Net.Http; namespace KubeClient.Http.Testability { using KubeClient.Http; using KubeClient.Http.Formatters; /// /// Extension methods for / . /// public static class MessageExtensions { /// /// Create a response message with an status code. /// /// /// The response message. /// /// /// The configured response message. /// public static HttpResponseMessage CreateResponse(this HttpRequestMessage request) { if (request == null) throw new ArgumentNullException(nameof(request)); return request.CreateResponse(HttpStatusCode.OK); } /// /// Create a response message. /// /// /// The response message. /// /// /// The response status code. /// /// /// The configured response message. /// public static HttpResponseMessage CreateResponse(this HttpRequestMessage request, HttpStatusCode statusCode) { if (request == null) throw new ArgumentNullException(nameof(request)); HttpResponseMessage response = new HttpResponseMessage(statusCode); try { response.RequestMessage = request; } catch { using (response) { throw; } } return response; } /// /// Create a response message. /// /// /// The response message. /// /// /// The response status code. /// /// /// The response body (media type will be "text/plain"). /// /// /// The configured response message. /// public static HttpResponseMessage CreateResponse(this HttpRequestMessage request, HttpStatusCode statusCode, string responseBody) { return request.CreateResponse(statusCode, responseBody, WellKnownMediaTypes.PlainText); } /// /// Create a response message. /// /// /// The response message. /// /// /// The response status code. /// /// /// The response body. /// /// /// The response media type. /// /// /// The configured response message. /// public static HttpResponseMessage CreateResponse(this HttpRequestMessage request, HttpStatusCode statusCode, string responseBody, string mediaType) { if (request == null) throw new ArgumentNullException(nameof(request)); if (responseBody != null && String.IsNullOrWhiteSpace(mediaType)) throw new ArgumentException("Must specify a valid media type if specifying a response body.", nameof(mediaType)); HttpResponseMessage response = request.CreateResponse(statusCode); if (responseBody == null) return response; try { response.Content = new StringContent(responseBody, OutputEncoding.UTF8, mediaType); } catch { using (response) { throw; } } return response; } } } ================================================ FILE: test/KubeClient.TestCommon/Http/Testability/MessageHandlers/MockMessageHandler.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace KubeClient.Http.Testability.MessageHandlers { /// /// Mock that calls an arbitrary delegate to receive and respond to a message. /// public sealed class MockMessageHandler : DelegatingHandler { /// /// The handler implementation. /// readonly Func> _handlerImplementation; /// /// Create a new mock message handler. /// /// /// The handler implementation. /// public MockMessageHandler(Func handlerImplementation) { if (handlerImplementation == null) throw new ArgumentNullException(nameof(handlerImplementation)); _handlerImplementation = request => Task.Factory.StartNew( () => handlerImplementation(request) ); } /// /// Create a new mock message handler. /// /// /// The handler implementation. /// public MockMessageHandler(Func> handlerImplementation) { if (handlerImplementation == null) throw new ArgumentNullException(nameof(handlerImplementation)); _handlerImplementation = handlerImplementation; } /// /// Asynchronously handle a request /// /// /// The request message. /// /// /// A cancellation token that can be used to cancel the operation. /// /// /// A representing the asynchronous operation, whose result is the response message. /// protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { if (request == null) throw new ArgumentNullException(nameof(request)); return await _handlerImplementation(request); } /// /// Create an that wraps the . /// /// /// The new /// public HttpClient CreateClient() => new HttpClient(this); /// /// Create an instance of the default mock message handler (responds to any request with ). /// public static MockMessageHandler Default() { return new MockMessageHandler( request => request.CreateResponse(HttpStatusCode.OK) ); } } } ================================================ FILE: test/KubeClient.TestCommon/Http/Testability/Xunit/MessageAssert.cs ================================================ using System; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Http.Testability.Xunit { /// /// Assertion functionality for HTTP request / response message generated by / . /// public static class MessageAssert { /// /// Assert that the request message has the specified URI. /// /// /// The . /// /// /// The expected URI. /// public static void HasRequestUri(HttpRequestMessage requestMessage, string expectedUri) { if (requestMessage == null) throw new ArgumentNullException(nameof(requestMessage)); if (String.IsNullOrWhiteSpace(expectedUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'expectedUri'.", nameof(expectedUri)); HasRequestUri(requestMessage, new Uri(expectedUri, UriKind.RelativeOrAbsolute) ); } /// /// Assert that the request message has the specified URI. /// /// /// The . /// /// /// The expected URI. /// public static void HasRequestUri(HttpRequestMessage requestMessage, Uri expectedUri) { if (requestMessage == null) throw new ArgumentNullException(nameof(requestMessage)); if (requestMessage == null) throw new ArgumentNullException(nameof(requestMessage)); Assert.Equal(expectedUri, requestMessage.RequestUri ); } /// /// Assert that the request message's Accept header contains the specified media type. /// /// /// The . /// /// /// The expected media type. /// public static void AcceptsMediaType(HttpRequestMessage requestMessage, string mediaType) { if (requestMessage == null) throw new ArgumentNullException(nameof(requestMessage)); if (String.IsNullOrWhiteSpace(mediaType)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'mediaType'.", nameof(mediaType)); Assert.Contains(requestMessage.Headers.Accept, accept => accept.MediaType == mediaType ); } /// /// Asynchronously assert that the request message body is equal to the specified string. /// /// /// The HTTP request message to examine. /// /// /// A string containing the expected message body. /// /// /// The actual message body. /// public static async Task BodyIsAsync(HttpRequestMessage requestMessage, string expectedBody) { if (requestMessage == null) throw new ArgumentNullException(nameof(requestMessage)); string actualBody = null; if (requestMessage.Content != null) actualBody = await requestMessage.Content.ReadAsStringAsync(); Assert.Equal(expectedBody, actualBody); return actualBody; } } } ================================================ FILE: test/KubeClient.TestCommon/Http/Testability/Xunit/RequestAssert.cs ================================================ using System; using System.Net.Http; using System.Threading.Tasks; namespace KubeClient.Http.Testability.Xunit { /// /// Assertion functionality for / . /// public static class RequestAssert { #region Untyped requests /// /// Assert that the generated by the has the specified URI. /// /// /// The . /// /// /// The expected URI. /// /// /// Uses the HTTP GET method and no base URI. /// public static void MessageHasUri(HttpRequest request, string expectedUri) { MessageHasUri(request, HttpMethod.Get, baseUri: null, expectedUri: expectedUri ); } /// /// Assert that the generated by the has the specified URI. /// /// /// The . /// /// /// The expected URI. /// /// /// Uses the HTTP GET method and no base URI. /// public static void MessageHasUri(HttpRequest request, Uri expectedUri) { MessageHasUri(request, HttpMethod.Get, baseUri: null, expectedUri: expectedUri ); } /// /// Assert that the generated by the has the specified URI. /// /// /// The . /// /// /// The base URI for the request. /// /// /// The expected URI. /// /// /// Uses the HTTP GET method. /// public static void MessageHasUri(HttpRequest request, Uri baseUri, string expectedUri) { MessageHasUri(request, HttpMethod.Get, baseUri, expectedUri); } /// /// Assert that the generated by the has the specified URI. /// /// /// The . /// /// /// The base URI for the request. /// /// /// The expected URI. /// /// /// Uses the HTTP GET method. /// public static void MessageHasUri(HttpRequest request, Uri baseUri, Uri expectedUri) { MessageHasUri(request, HttpMethod.Get, baseUri, expectedUri); } /// /// Assert that the generated by the has the specified URI. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The base URI for the request. /// /// /// The expected URI. /// public static void MessageHasUri(HttpRequest request, HttpMethod method, Uri baseUri, string expectedUri) { if (String.IsNullOrWhiteSpace(expectedUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'expectedUri'.", nameof(expectedUri)); Message(request, method, baseUri, requestMessage => { MessageAssert.HasRequestUri(requestMessage, expectedUri); }); } /// /// Assert that the generated by the has the specified URI. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The base URI for the request. /// /// /// The expected URI. /// public static void MessageHasUri(HttpRequest request, HttpMethod method, Uri baseUri, Uri expectedUri) { Message(request, method, baseUri, requestMessage => { MessageAssert.HasRequestUri(requestMessage, expectedUri); }); } /// /// Make assertions about the generated by the . /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, Action assertion) { Message(request, method, bodyContent: null, baseUri: null, assertion: assertion ); } /// /// Make assertions about the generated by the . /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The request base URI. /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, Uri baseUri, Action assertion) { Message(request, method, bodyContent: null, baseUri: baseUri, assertion: assertion ); } /// /// Make assertions about the generated by the . /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// representing the request body content. /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, HttpContent bodyContent, Action assertion) { Message(request, method, bodyContent, null, assertion); } /// /// Make assertions about the generated by the . /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// representing the request body content. /// /// /// An optional base URI for the request. /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, HttpContent bodyContent, Uri baseUri, Action assertion) { if (request == null) throw new ArgumentNullException(nameof(request)); if (assertion == null) throw new ArgumentNullException(nameof(assertion)); if (method == null) throw new ArgumentNullException(nameof(method)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(method, bodyContent, baseUri)) { assertion(requestMessage); } } /// /// Make assertions about the generated by the . /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// representing the request body content. /// /// /// An optional base URI for the request. /// /// /// An asynchronous delegate that makes assertions about the . /// public static async Task MessageAsync(HttpRequest request, HttpMethod method, HttpContent bodyContent, Uri baseUri, Func asyncAssertion) { if (request == null) throw new ArgumentNullException(nameof(request)); if (asyncAssertion == null) throw new ArgumentNullException(nameof(asyncAssertion)); if (method == null) throw new ArgumentNullException(nameof(method)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(method, bodyContent, baseUri)) { await asyncAssertion(requestMessage); } } #endregion // Untyped requests #region Typed requests /// /// Assert that the generated by the has the specified URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The instance used as a context for resolving deferred values for each request. /// /// /// The expected URI. /// /// /// Uses the HTTP GET method and no base URI. /// public static void MessageHasUri(HttpRequest request, TContext context, string expectedUri) { MessageHasUri(request, HttpMethod.Get, context, baseUri: null, expectedUri: expectedUri ); } /// /// Assert that the generated by the has the specified URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The instance used as a context for resolving deferred values for each request. /// /// /// The expected URI. /// /// /// Uses the HTTP GET method and no base URI. /// public static void MessageHasUri(HttpRequest request, TContext context, Uri expectedUri) { MessageHasUri(request, HttpMethod.Get, context, baseUri: null, expectedUri: expectedUri ); } /// /// Assert that the generated by the has the specified URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The instance used as a context for resolving deferred values for each request. /// /// /// The base URI for the request. /// /// /// The expected URI. /// /// /// Uses the HTTP GET method. /// public static void MessageHasUri(HttpRequest request, TContext context, Uri baseUri, string expectedUri) { MessageHasUri(request, HttpMethod.Get, context, baseUri, expectedUri); } /// /// Assert that the generated by the has the specified URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The instance used as a context for resolving deferred values for each request. /// /// /// The base URI for the request. /// /// /// The expected URI. /// /// /// Uses the HTTP GET method. /// public static void MessageHasUri(HttpRequest request, TContext context, Uri baseUri, Uri expectedUri) { MessageHasUri(request, HttpMethod.Get, context, baseUri, expectedUri); } /// /// Assert that the generated by the has the specified URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The instance used as a context for resolving deferred values for each request. /// /// /// The base URI for the request. /// /// /// The expected URI. /// public static void MessageHasUri(HttpRequest request, HttpMethod method, TContext context, Uri baseUri, string expectedUri) { if (String.IsNullOrWhiteSpace(expectedUri)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'expectedUri'.", nameof(expectedUri)); Message(request, method, context, baseUri, requestMessage => { MessageAssert.HasRequestUri(requestMessage, expectedUri); }); } /// /// Assert that the generated by the has the specified URI. /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The instance used as a context for resolving deferred values for each request. /// /// /// The base URI for the request. /// /// /// The expected URI. /// public static void MessageHasUri(HttpRequest request, HttpMethod method, TContext context, Uri baseUri, Uri expectedUri) { Message(request, method, context, baseUri, requestMessage => { MessageAssert.HasRequestUri(requestMessage, expectedUri); }); } /// /// Make assertions about the generated by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// A delegate that makes assertions about the . /// /// /// Uses the default value for . /// public static void Message(HttpRequest request, HttpMethod method, Action assertion) { Message(request, method, context: default(TContext), bodyContent: null, baseUri: null, assertion: assertion ); } /// /// Make assertions about the generated by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The request base URI. /// /// /// A delegate that makes assertions about the . /// /// /// Uses the default value for . /// public static void Message(HttpRequest request, HttpMethod method, Uri baseUri, Action assertion) { Message(request, method, context: default(TContext), bodyContent: null, baseUri: baseUri, assertion: assertion ); } /// /// Make assertions about the generated by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The instance used as a context for resolving deferred values. /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, TContext context, Action assertion) { Message(request, method, context, bodyContent: null, baseUri: null, assertion: assertion ); } /// /// Make assertions about the generated by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The instance used as a context for resolving deferred values. /// /// /// The request base URI. /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, TContext context, Uri baseUri, Action assertion) { Message(request, method, context, bodyContent: null, baseUri: baseUri, assertion: assertion ); } /// /// Make assertions about the generated by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The instance used as a context for resolving deferred values. /// /// /// representing the request body content. /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, TContext context, HttpContent bodyContent, Action assertion) { Message(request, method, context, bodyContent, baseUri: null, assertion: assertion ); } /// /// Make assertions about the generated by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The instance used as a context for resolving deferred values. /// /// /// representing the request body content. /// /// /// An optional base URI for the request. /// /// /// A delegate that makes assertions about the . /// public static void Message(HttpRequest request, HttpMethod method, TContext context, HttpContent bodyContent, Uri baseUri, Action assertion) { if (request == null) throw new ArgumentNullException(nameof(request)); if (assertion == null) throw new ArgumentNullException(nameof(assertion)); if (method == null) throw new ArgumentNullException(nameof(method)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(method, context, bodyContent, baseUri)) { assertion(requestMessage); } } /// /// Make assertions about the generated by the . /// /// /// The type of object used as a context for resolving deferred parameters. /// /// /// The . /// /// /// The HTTP method (e.g. GET / POST / PUT). /// /// /// The instance used as a context for resolving deferred values. /// /// /// representing the request body content. /// /// /// An optional base URI for the request. /// /// /// An asynchronous delegate that makes assertions about the . /// public static async Task MessageAsync(HttpRequest request, HttpMethod method, TContext context, HttpContent bodyContent, Uri baseUri, Func asyncAssertion) { if (request == null) throw new ArgumentNullException(nameof(request)); if (asyncAssertion == null) throw new ArgumentNullException(nameof(asyncAssertion)); if (method == null) throw new ArgumentNullException(nameof(method)); using (HttpRequestMessage requestMessage = request.BuildRequestMessage(method, context, bodyContent, baseUri)) { await asyncAssertion(requestMessage); } } #endregion // Typed requests } } ================================================ FILE: test/KubeClient.TestCommon/Http/Testability/Xunit/TestClients.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Http.Testability.Xunit { /// /// Factory methods for mocked s used by tests. /// public static class TestClients { /// /// Create an that always responds to requests with the status code. /// /// /// The configured . /// public static HttpClient RespondWithOk() { return TestHandlers.RespondWith(HttpStatusCode.OK).CreateClient(); } /// /// Create an that always responds to requests with the status code. /// /// /// The configured . /// public static HttpClient RespondWithBadRequest() { return TestHandlers.RespondWith(HttpStatusCode.BadRequest).CreateClient(); } /// /// Create an that always responds to requests with the status code. /// /// /// A string to be used as the response message body. /// /// /// The response media type. /// /// /// The configured . /// public static HttpClient RespondWithBadRequest(string responseBody, string responseMediaType) { if (String.IsNullOrWhiteSpace(responseMediaType)) throw new ArgumentException("Must specify a valid media type.", nameof(responseMediaType)); return TestHandlers.RespondWith( request => request.CreateResponse(HttpStatusCode.BadRequest, responseBody, responseMediaType) ) .CreateClient(); } /// /// Create an that always responds to requests with the specified status code. /// /// /// The HTTP status code. /// /// /// The configured . /// public static HttpClient RespondWith(HttpStatusCode statusCode) { return TestHandlers.RespondWith( request => request.CreateResponse(statusCode) ) .CreateClient(); } /// /// Create an that calls the specified delegate to synchronously respond to requests. /// /// /// A delegate that takes an incoming and returns an outgoing . /// /// /// The configured . /// public static HttpClient RespondWith(Func handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); return TestHandlers.RespondWith(handler).CreateClient(); } /// /// Create an that calls the specified delegate to asynchronously respond to requests. /// /// /// A delegate that takes an incoming and asynchronously returns an outgoing . /// /// /// The configured . /// public static HttpClient AsyncRespondWith(Func> handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); return TestHandlers.AsyncRespondWith(handler).CreateClient(); } /// /// Create an that expects an incoming GET request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectGet(Uri expectedRequestUri) { return TestHandlers.ExpectGet(expectedRequestUri, HttpStatusCode.OK, assertion: null).CreateClient(); } /// /// Create an that performs assertions on an incoming GET request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectGet(Uri expectedRequestUri, Action assertion) { return TestHandlers.ExpectGet(expectedRequestUri, HttpStatusCode.OK, assertion).CreateClient(); } /// /// Create an that performs assertions on an incoming GET request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectGet(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return TestHandlers.Expect(expectedRequestUri, HttpMethod.Get, responseStatusCode, assertion).CreateClient(); } /// /// Create an that expects an incoming POST request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectPost(Uri expectedRequestUri) { return TestHandlers.ExpectPost(expectedRequestUri, HttpStatusCode.OK, assertion: null).CreateClient(); } /// /// Create an that performs assertions on an incoming POST request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectPost(Uri expectedRequestUri, Action assertion) { return TestHandlers.ExpectPost(expectedRequestUri, HttpStatusCode.OK, assertion).CreateClient(); } /// /// Create an that performs assertions on an incoming POST request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectPost(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return TestHandlers.Expect(expectedRequestUri, HttpMethod.Post, responseStatusCode, assertion).CreateClient(); } /// /// Create an that expects an incoming PUT request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectPut(Uri expectedRequestUri) { return TestHandlers.ExpectPut(expectedRequestUri, HttpStatusCode.OK, assertion: null).CreateClient(); } /// /// Create an that performs assertions on an incoming PUT request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectPut(Uri expectedRequestUri, Action assertion) { return TestHandlers.ExpectPut(expectedRequestUri, HttpStatusCode.OK, assertion).CreateClient(); } /// /// Create an that performs assertions on an incoming PUT request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectPut(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return TestHandlers.Expect(expectedRequestUri, HttpMethod.Put, responseStatusCode, assertion).CreateClient(); } /// /// Create an that expects an incoming DELETE request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectDelete(Uri expectedRequestUri) { return TestHandlers.ExpectDelete(expectedRequestUri, HttpStatusCode.OK, assertion: null).CreateClient(); } /// /// Create an that performs assertions on an incoming DELETE request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectDelete(Uri expectedRequestUri, Action assertion) { return TestHandlers.ExpectDelete(expectedRequestUri, HttpStatusCode.OK, assertion).CreateClient(); } /// /// Create an that performs assertions on an incoming DELETE request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectDelete(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return TestHandlers.Expect(expectedRequestUri, HttpMethod.Delete, responseStatusCode, assertion).CreateClient(); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient Expect(Action assertion) { return TestHandlers.Expect(HttpStatusCode.OK, assertion).CreateClient(); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient Expect(HttpStatusCode responseStatusCode, Action assertion) { return TestHandlers.RespondWith(requestMessage => { Assert.NotNull(requestMessage); assertion?.Invoke(requestMessage); return requestMessage.CreateResponse(responseStatusCode); }) .CreateClient(); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient Expect(Uri expectedRequestUri, HttpMethod expectedRequestMethod, HttpStatusCode responseStatusCode, Action assertion) { if (expectedRequestUri == null) throw new ArgumentNullException(nameof(expectedRequestUri)); if (expectedRequestMethod == null) throw new ArgumentNullException(nameof(expectedRequestMethod)); return TestHandlers.Expect(responseStatusCode, requestMessage => { Assert.Equal(expectedRequestMethod, requestMessage.Method); Assert.Equal(expectedRequestUri, requestMessage.RequestUri); assertion?.Invoke(requestMessage); }) .CreateClient(); } } } ================================================ FILE: test/KubeClient.TestCommon/Http/Testability/Xunit/TestHandlers.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Http.Testability.Xunit { using MessageHandlers; /// /// Factory methods for mocked s used by tests. /// public static class TestHandlers { /// /// Create an that always responds to requests with the status code. /// /// /// The configured . /// public static MockMessageHandler RespondWithOk() { return RespondWith(HttpStatusCode.OK); } /// /// Create an that always responds to requests with the status code. /// /// /// The configured . /// public static MockMessageHandler RespondWithBadRequest() { return RespondWith(HttpStatusCode.BadRequest); } /// /// Create an that always responds to requests with the status code. /// /// /// A string to be used as the response message body. /// /// /// The response media type. /// /// /// The configured . /// public static MockMessageHandler RespondWithBadRequest(string responseBody, string responseMediaType) { if (String.IsNullOrWhiteSpace(responseMediaType)) throw new ArgumentException("Must specify a valid media type.", nameof(responseMediaType)); return RespondWith( request => request.CreateResponse(HttpStatusCode.BadRequest, responseBody, responseMediaType) ); } /// /// Create an that always responds to requests with the specified status code. /// /// /// The HTTP status code. /// /// /// The configured . /// public static MockMessageHandler RespondWith(HttpStatusCode statusCode) { return RespondWith( request => request.CreateResponse(statusCode) ); } /// /// Create an that calls the specified delegate to synchronously respond to requests. /// /// /// A delegate that takes an incoming and returns an outgoing . /// /// /// The configured . /// public static MockMessageHandler RespondWith(Func handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); return new MockMessageHandler(handler); } /// /// Create an that calls the specified delegate to asynchronously respond to requests. /// /// /// A delegate that takes an incoming and asynchronously returns an outgoing . /// /// /// The configured . /// public static MockMessageHandler AsyncRespondWith(Func> handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); return new MockMessageHandler(handler); } /// /// Create an that expects an incoming GET request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectGet(Uri expectedRequestUri) { return ExpectGet(expectedRequestUri, HttpStatusCode.OK, assertion: null); } /// /// Create an that performs assertions on an incoming GET request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectGet(Uri expectedRequestUri, Action assertion) { return ExpectGet(expectedRequestUri, HttpStatusCode.OK, assertion); } /// /// Create an that performs assertions on an incoming GET request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectGet(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return Expect(expectedRequestUri, HttpMethod.Get, responseStatusCode, assertion); } /// /// Create an that expects an incoming POST request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectPost(Uri expectedRequestUri) { return ExpectPost(expectedRequestUri, HttpStatusCode.OK, assertion: null); } /// /// Create an that performs assertions on an incoming POST request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectPost(Uri expectedRequestUri, Action assertion) { return ExpectPost(expectedRequestUri, HttpStatusCode.OK, assertion); } /// /// Create an that performs assertions on an incoming POST request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectPost(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return Expect(expectedRequestUri, HttpMethod.Post, responseStatusCode, assertion); } /// /// Create an that expects an incoming PUT request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectPut(Uri expectedRequestUri) { return ExpectPut(expectedRequestUri, HttpStatusCode.OK, assertion: null); } /// /// Create an that performs assertions on an incoming PUT request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectPut(Uri expectedRequestUri, Action assertion) { return ExpectPut(expectedRequestUri, HttpStatusCode.OK, assertion); } /// /// Create an that performs assertions on an incoming PUT request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectPut(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return Expect(expectedRequestUri, HttpMethod.Put, responseStatusCode, assertion); } /// /// Create an that expects an incoming DELETE request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectDelete(Uri expectedRequestUri) { return ExpectDelete(expectedRequestUri, HttpStatusCode.OK, assertion: null); } /// /// Create an that performs assertions on an incoming DELETE request message and returns an response. /// /// /// The expected URI for the incoming request message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectDelete(Uri expectedRequestUri, Action assertion) { return ExpectDelete(expectedRequestUri, HttpStatusCode.OK, assertion); } /// /// Create an that performs assertions on an incoming DELETE request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler ExpectDelete(Uri expectedRequestUri, HttpStatusCode responseStatusCode, Action assertion) { return Expect(expectedRequestUri, HttpMethod.Delete, responseStatusCode, assertion); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler Expect(Action assertion) { return Expect(HttpStatusCode.OK, assertion); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler Expect(HttpStatusCode responseStatusCode, Action assertion) { return RespondWith(requestMessage => { Assert.NotNull(requestMessage); assertion?.Invoke(requestMessage); return requestMessage.CreateResponse(responseStatusCode); }); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static MockMessageHandler Expect(Uri expectedRequestUri, HttpMethod expectedRequestMethod, HttpStatusCode responseStatusCode, Action assertion) { if (expectedRequestUri == null) throw new ArgumentNullException(nameof(expectedRequestUri)); if (expectedRequestMethod == null) throw new ArgumentNullException(nameof(expectedRequestMethod)); return Expect(responseStatusCode, requestMessage => { Assert.Equal(expectedRequestMethod, requestMessage.Method); Assert.Equal(expectedRequestUri, requestMessage.RequestUri); assertion?.Invoke(requestMessage); }); } } } ================================================ FILE: test/KubeClient.TestCommon/KubeClient.TestCommon.csproj ================================================  net7.0;net8.0;net9.0;net10.0 false false ================================================ FILE: test/KubeClient.TestCommon/Logging/TestOutputLogger.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Reactive.Disposables; using Xunit.Abstractions; namespace KubeClient.TestCommon { /// /// An implementation of that writes to the output of the current Xunit test. /// sealed class TestOutputLogger : ILogger { /// /// Create a new . /// /// /// The output for the current test. /// /// /// The logger's category name. /// /// /// The logger's minimum log level. /// public TestOutputLogger(ITestOutputHelper testOutput, string loggerCategory, LogLevel minLogLevel) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); if (String.IsNullOrWhiteSpace(loggerCategory)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'loggerCategory'.", nameof(loggerCategory)); TestOutput = testOutput; LoggerCategory = loggerCategory; MinLogLevel = minLogLevel; } /// /// The output for the current test. /// public ITestOutputHelper TestOutput { get; } /// /// The logger's category name. /// public string LoggerCategory { get; } /// /// The logger's minimum log level. /// public LogLevel MinLogLevel { get; } /// /// Emit a log entry. /// /// /// The log entry's level. /// /// /// The log entry's associated event Id. /// /// /// The log entry to be written. Can be also an object. /// /// /// The exception (if any) related to the log entry. /// /// /// A function that creates a string log message from the and . /// public void Log(LogLevel level, EventId eventId, TState state, Exception exception, Func formatter) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); TestOutput.WriteLine(String.Format("[{0}] {1}: {2}", level, LoggerCategory, formatter(state, exception) )); } /// /// Check if the given is enabled. /// /// /// The level to be checked. /// /// /// true if enabled; otherwise, false. /// public bool IsEnabled(LogLevel logLevel) => logLevel >= MinLogLevel; /// /// Begin a logical operation scope. /// /// /// An identifier for the scope. /// /// /// An that ends the logical operation scope when disposed. /// public IDisposable BeginScope(TState state) => Disposable.Empty; } } ================================================ FILE: test/KubeClient.TestCommon/Logging/TestOutputLoggerProvider.cs ================================================ using Microsoft.Extensions.Logging; using System; using Xunit.Abstractions; namespace KubeClient.TestCommon { /// /// Logger provider for logging to Xunit test output. /// sealed class TestOutputLoggerProvider : ILoggerProvider { /// /// Create a new . /// /// /// The output for the current test. /// /// /// The logger's minimum log level. /// public TestOutputLoggerProvider(ITestOutputHelper testOutput, LogLevel minLogLevel) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); TestOutput = testOutput; MinLogLevel = minLogLevel; } /// /// Dispose of resources being used by the logger provider. /// public void Dispose() { } /// /// The output for the current test. /// ITestOutputHelper TestOutput { get; } /// /// The logger's minimum log level. /// public LogLevel MinLogLevel { get; } /// /// Create a new logger. /// /// /// The logger category name. /// /// /// The logger, as an . /// public ILogger CreateLogger(string categoryName) => new TestOutputLogger(TestOutput, categoryName, MinLogLevel); } } ================================================ FILE: test/KubeClient.TestCommon/Logging/TestOutputLoggingExtensions.cs ================================================ using Microsoft.Extensions.Logging; using System; using Xunit.Abstractions; namespace KubeClient.TestCommon.Logging { /// /// Extension methods for logging to Xunit text output. /// public static class TestOutputLoggingExtensions { static readonly LogLevel DefaultMinLogLevel = LogLevel.Information; /// /// Log to test output. /// /// /// The global logging configuration. /// /// /// Output for the current test. /// /// /// The minimum level to log at. /// public static void AddTestOutput(this ILoggingBuilder logging, ITestOutputHelper testOutput, LogLevel? minLogLevel = null) { if (logging == null) throw new ArgumentNullException(nameof(logging)); if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); logging.AddProvider( new TestOutputLoggerProvider(testOutput, minLogLevel ?? DefaultMinLogLevel) ); } /// /// Log to test output. /// /// /// The logger factory. /// /// /// Output for the current test. /// /// /// The minimum level to log at. /// /// /// The logger factory (enables inline use / method-chaining). /// public static ILoggerFactory AddTestOutput(this ILoggerFactory loggers, ITestOutputHelper testOutput, LogLevel? minLogLevel = null) { if (loggers == null) throw new ArgumentNullException(nameof(loggers)); if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); loggers.AddProvider( new TestOutputLoggerProvider(testOutput, minLogLevel ?? DefaultMinLogLevel) ); return loggers; } } } ================================================ FILE: test/KubeClient.TestCommon/Mocks/JsonPatch.cs ================================================ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Runtime.Serialization; namespace KubeClient.TestCommon.Mocks { /// /// Represents a single operation within a JSON Patch request. /// /// /// A value indicating the kind of operation. /// /// /// The path of the operation's target token. /// /// /// The operation's associated value (semantics dependent on ). /// public record class JsonPatchOperation( [JsonProperty("op")] JsonPatchOperationKind Kind, [JsonProperty("path")] string Path, [JsonProperty("value")] JToken Value ) { /// /// Is the valid? /// [JsonIgnore] public bool IsValid { get { if (Kind == JsonPatchOperationKind.Unknown || !Enum.IsDefined(Kind)) return false; if (String.IsNullOrWhiteSpace(Path)) return false; if (Value == null && Kind != JsonPatchOperationKind.Delete) return false; return true; } } /// /// Ensure that the is valid. /// /// /// The is not valid. /// public void EnsureValid() { if (Kind == JsonPatchOperationKind.Unknown || !Enum.IsDefined(Kind)) throw new JsonException($"Invalid JSON-patch operation (invalid 'operation' kind)."); if (String.IsNullOrWhiteSpace(Path)) throw new JsonException($"Invalid JSON-patch operation (missing 'path' directive)."); if (Value == null && Kind != JsonPatchOperationKind.Delete) throw new JsonException($"Invalid JSON-patch operation (missing 'value' directive but operation is '{Kind}', not 'delete')."); } } /// /// Well-known kinds of JSON Patch operation. /// public enum JsonPatchOperationKind { /// /// An unknown kind of JSON Patch operation. /// Unknown = 0, /// /// A deletion operation. /// [EnumMember(Value = "delete")] Delete = 5, /// /// A replacement operation. /// [EnumMember(Value = "replace")] Replace = 10, } } ================================================ FILE: test/KubeClient.TestCommon/Mocks/MockApiResults.cs ================================================ using KubeClient.Models; using Microsoft.AspNetCore.Http; namespace KubeClient.TestCommon.Mocks { /// /// Factory methods for well-known API results returned from minimal APIs. /// public static class MockApiResults { /// /// Create an HTTP 200 result that serialises the specified value as JSON using the Newtonsoft serialiser and sends it as the response body. /// /// /// The type of value to use as the response body. /// /// /// The value to use as the response body. /// /// /// The . /// public static IResult Ok(TValue value) => new NewtonsoftJsonHttpResult(value, StatusCodes.Status200OK); /// /// Create an HTTP 400 result that serialises the specified status as JSON using the Newtonsoft serialiser and sends it as the response body. /// /// /// The to use as the response body. /// /// /// The . /// public static IResult BadRequest(StatusV1 status) => new NewtonsoftJsonHttpResult(status, StatusCodes.Status400BadRequest); /// /// Create an HTTP 404 result that serialises the specified status as JSON using the Newtonsoft serialiser and sends it as the response body. /// /// /// The to use as the response body. /// /// /// The . /// public static IResult NotFound(StatusV1 status) => new NewtonsoftJsonHttpResult(status, StatusCodes.Status404NotFound); /// /// Create an HTTP 500 result that serialises the specified status as JSON using the Newtonsoft serialiser and sends it as the response body. /// /// /// The to use as the response body. /// /// /// The . /// public static IResult InternalServerError(StatusV1 status) => new NewtonsoftJsonHttpResult(status, StatusCodes.Status500InternalServerError); } } ================================================ FILE: test/KubeClient.TestCommon/Mocks/MockKubeApi.cs ================================================ using KubeClient.Models; using KubeClient.TestCommon.Logging; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Diagnostics; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Xunit.Abstractions; #pragma warning disable ASP0012 // Suggest using builder.Services over Host.ConfigureServices or WebHost.ConfigureServices namespace KubeClient.TestCommon.Mocks { /// /// A mock implementation of the Kubernetes API. /// public sealed class MockKubeApi : IAsyncDisposable { /// /// The underlying that hosts the mock API. /// readonly WebApplication _webApplication; /// /// The that provides in-process access to the hosted . /// readonly TestServer _testServer; /// /// Has the been disposed? /// int _isDisposed; #region Construction / Disposal /// /// Create a new . /// /// /// The underlying that hosts the mock API. /// MockKubeApi(WebApplication webApplication) { if (webApplication == null) throw new ArgumentNullException(nameof(webApplication)); _webApplication = webApplication; _testServer = webApplication.GetTestServer(); } /// /// Asynchronously dispose of resources being used by the mock API. /// /// /// A representing the disposal operation. /// public async ValueTask DisposeAsync() { int wasDisposed = Interlocked.Exchange(ref _isDisposed, 1); if (wasDisposed != 0) return; await using WebApplication webApplication = _webApplication; using TestServer testServer = _testServer; } /// /// Check if the has been disposed. /// /// /// The has been disposed. /// void CheckDisposed() { if (_isDisposed != 0) throw new ObjectDisposedException(GetType().Name); } #endregion // Construction / Disposal /// /// The base address of the mock API. /// public Uri BaseAddress { get { CheckDisposed(); return _testServer.BaseAddress; } } /// /// Create a custom for processing HTTP requests/responses against the mock Kubernetes API. /// public HttpMessageHandler CreateHandler() { CheckDisposed(); return _testServer.CreateHandler(); } #if !NET6_0 /// /// Create a custom for processing HTTP requests/responses with custom configuration against the mock Kubernetes API. /// public HttpMessageHandler CreateHandler(Action additionalContextConfiguration) { CheckDisposed(); return _testServer.CreateHandler(additionalContextConfiguration); } #endif // !NET6_0 /// /// Create a for processing HTTP requests/responses against the mock Kubernetes API. /// public HttpClient CreateClient() { CheckDisposed(); return _testServer.CreateClient(); } /// /// Create a for interacting with the mock Kubernetes API. /// public WebSocketClient CreateWebSocketClient() { CheckDisposed(); return _testServer.CreateWebSocketClient(); } /// /// Start constructing a request message for submission to the mock Kubernetes API. /// /// /// The request path. /// /// /// A used to construct the request. /// public RequestBuilder CreateRequest(string path) { if (path == null) throw new ArgumentNullException(nameof(path)); return _testServer.CreateRequest(path); } /// /// Get a simple dictionary key to identify a resource. /// /// /// The resource metadata. /// /// /// A string that can be used as a dictionary key to identify the resource. /// public static string GetResourceKey(ObjectMetaV1 resourceMetadata) { if (resourceMetadata == null) throw new ArgumentNullException(nameof(resourceMetadata)); return GetResourceKey(resourceMetadata.Name, resourceMetadata.Namespace); } /// /// Get a simple dictionary key to identify a resource. /// /// /// The resource name. /// /// /// The resource namespace. /// /// /// A string that can be used as a dictionary key to identify the resource. /// public static string GetResourceKey(string resourceName, string resourceNamespace) { if (String.IsNullOrWhiteSpace(resourceName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourceName)}.", nameof(resourceName)); if (resourceNamespace != null) return $"{resourceNamespace}/{resourceName}"; return resourceName; } /// /// Start a new instance. /// /// /// An representing the output for the current test. /// /// /// An optional delegate to configure the request-processing pipeline (i.e. API end-points). /// /// /// An optional delegate to configure server-side components and services (, etc). /// /// /// An optional delegate to configure server-side configuration (, etc). /// /// /// An optional minimum level to log at (defaults to ). /// /// /// The configured (and running) . /// public static MockKubeApi Create(ITestOutputHelper testOutput, Action configureApp = null, Action configureServices = null, Action configureConfiguration = null, LogLevel? minLogLevel = null) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); WebApplication webApp = BuildWebApplication(testOutput, configureApp, configureServices, configureConfiguration, minLogLevel); try { webApp.Start(); return new MockKubeApi(webApp); } catch (Exception) { // Clean up. using (webApp) { throw; } } } /// /// Build a to host the mock API. /// /// /// An representing the output for the current test. /// /// /// An optional delegate to configure the server-side request-processing pipeline (i.e. API end-points). /// /// /// An optional delegate to configure server-side components and services (, etc). /// /// /// An optional delegate to configure server-side configuration (, etc). /// /// /// An optional minimum level to log at (defaults to ). /// /// /// The configured . /// static WebApplication BuildWebApplication(ITestOutputHelper testOutput, Action configureApp, Action configureServices, Action configureConfiguration, LogLevel? minLogLevel) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); WebApplicationBuilder webAppBuilder = WebApplication.CreateBuilder(); DefaultConfiguration(webAppBuilder.Configuration); if (configureConfiguration != null) configureConfiguration(webAppBuilder.Configuration); webAppBuilder.Logging.AddDebug(); webAppBuilder.Logging.AddTestOutput(testOutput, minLogLevel); if (minLogLevel != null) webAppBuilder.Logging.SetMinimumLevel(minLogLevel.Value); webAppBuilder.WebHost.UseTestServer(testServer => { testServer.AllowSynchronousIO = true; }); webAppBuilder.WebHost.ConfigureServices(DefaultServices); if (configureServices != null) webAppBuilder.WebHost.ConfigureServices(configureServices); WebApplication webApp = webAppBuilder.Build(); DefaultApplication(webApp); if (configureApp != null) configureApp(webApp); return webApp; } /// /// Default server-side configuration for the mock API. /// /// /// The to configure. /// public static void DefaultConfiguration(ConfigurationManager configuration) { if (configuration == null) throw new ArgumentNullException(nameof(configuration)); } /// /// Default server-side dependency-injection configuration for the mock API. /// /// /// Contextual information about the web host being build. /// /// /// The to configure. /// public static void DefaultServices(WebHostBuilderContext context, IServiceCollection services) { if (context == null) throw new ArgumentNullException(nameof(context)); if (services == null) throw new ArgumentNullException(nameof(services)); } /// /// Default configuration for the server-side request-processing pipeline (i.e. API end-points). /// /// /// The to configure. /// public static void DefaultApplication(WebApplication webApp) { if (webApp == null) throw new ArgumentNullException(nameof(webApp)); webApp.UseExceptionHandler(new ExceptionHandlerOptions { ExceptionHandler = async (context) => { if (context.Response.HasStarted) return; context.Response.StatusCode = StatusCodes.Status500InternalServerError; context.Response.ContentType = "application/json"; StatusV1 responseBody = StatusV1.Failure($"An unexpected error occurred while handling {context.Request.Method} request on '{context.Request.Path}'.", reason: "InternalServerError", code: StatusCodes.Status500InternalServerError ); IExceptionHandlerFeature exceptionHandlerFeature = context.Features.Get(); if (exceptionHandlerFeature?.Error != null) responseBody.Message = exceptionHandlerFeature.Error.ToString(); await context.Response.WriteAsync( JsonConvert.SerializeObject(responseBody), cancellationToken: context.RequestAborted ); } }); webApp.MapFallback((HttpContext context) => { ILogger logger = context.RequestServices.GetRequiredService().CreateLogger("MockKubeApi.FallbackHandler"); logger.LogWarning("Unhandled {RequestMethod} request to {RequestPath}.", context.Request.Method, context.Request.Path); return Results.Content( JsonConvert.SerializeObject( StatusV1.Failure($"No handler is registered for {context.Request.Method} requests on '{context.Request.Path}'.", reason: "NotImplemented", code: StatusCodes.Status501NotImplemented ) ), contentType: "application/json", statusCode: StatusCodes.Status501NotImplemented ); }); } /// /// Synchronous delegate for listing all resources of a given (non-namespaced) resource type. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The type of model representing a list of s (must derive from ). /// /// /// The list of resources. /// public delegate TResourceList ListResourcesHandler() where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1; /// /// Synchronous delegate for listing all resources of a given (namespaced) resource type. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The type of model representing a list of s (must derive from ). /// /// /// The list of resources. /// public delegate TResourceList ListNamespacedResourcesHandler(string resourceNamespace) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1; /// /// Asynchronous delegate for listing all resources of a given (non-namespaced) resource type. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The type of model representing a list of s (must derive from ). /// /// /// The list of resources. /// public delegate Task AsyncListResourcesHandler() where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1; /// /// Aynchronous delegate for listing all resources of a given (namespaced) resource type. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The type of model representing a list of s (must derive from ). /// /// /// The name of the target namespace. /// /// /// The list of resources. /// public delegate Task AsyncListNamespacedResourcesHandler(string resourceNamespace) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1; /// /// Synchronous delegate for retrieving persisted state for a single (non-namespaced) resource instance. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// The resource, or null if no persisted state exists for the resource with the specified name. /// public delegate TResource LoadResourceHandler(string resourceName) where TResource : KubeResourceV1; /// /// Synchronous delegate for retrieving persisted state for a single (namespaced) resource instance. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// The name of the target resource's namespace. /// /// /// The resource, or null if no persisted state exists for the resource with the specified name and namespace. /// public delegate TResource LoadNamespacedResourceHandler(string resourceName, string resourceNamespace) where TResource : KubeResourceV1; /// /// Asynchronous delegate for retrieving persisted state for a single (non-namespaced) resource instance. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// The resource, or null if no persisted state exists for the resource with the specified name. /// public delegate Task AsyncLoadResourceHandler(string resourceName) where TResource : KubeResourceV1; /// /// Asynchronous delegate for retrieving persisted state for a single (namespaced) resource instance. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// The name of the target resource's namespace. /// /// /// The resource, or null if no persisted state exists for the resource with the specified name and namespace. /// public delegate Task AsyncLoadNamespacedResourceHandler(string resourceName, string resourceNamespace) where TResource : KubeResourceV1; /// /// Synchronous delegate for persisting state for a single resource. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// A representing the resource state to persist. /// /// /// A representing the persisted resource state. /// public delegate TResource SaveResourceHandler(TResource resource) where TResource : KubeResourceV1; /// /// Asynchronous delegate for persisting state for a single resource. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// A representing the resource state to persist. /// /// /// A representing the persisted resource state. /// public delegate Task AsyncSaveResourceHandler(TResource resource) where TResource : KubeResourceV1; /// /// Synchronous delegate for applying a patch request to persisted state for a single (non-namespaced) resource. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// A representing the modified (and persisted) resource state, or null if no persisted state exists for the resource with the specified name. /// public delegate TResource PatchResourceHandler(string resourceName, JsonPatchOperation[] patchRequest) where TResource : KubeResourceV1; /// /// Synchronous delegate for applying a patch request to persisted state for a single (namespaced) resource. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// The name of the target resource's namespace. /// /// /// A representing the modified (and persisted) resource state, or null if no persisted state exists for the resource with the specified name and namespace. /// public delegate TResource PatchNamespacedResourceHandler(string resourceName, string resourceNamespace, JsonPatchOperation[] patchRequest) where TResource : KubeResourceV1; /// /// Asynchronous delegate for applying a patch request to persisted state for a single (non-namespaced) resource. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// A representing the modified (and persisted) resource state, or null if no persisted state exists for the resource with the specified name. /// public delegate Task AsyncPatchResourceHandler(string resourceName, JsonPatchOperation[] patchRequest) where TResource : KubeResourceV1; /// /// Asynchronous delegate for applying a patch request to persisted state for a single (non-namespaced) resource. /// /// /// The type of model representing the target resource type (must derive from ). /// /// /// The name of the target resource. /// /// /// The name of the target resource's namespace. /// /// /// A representing the modified (and persisted) resource state, or null if no persisted state exists for the resource with the specified name and namespace. /// public delegate Task AsyncPatchNamespacedResourceHandler(string resourceName, string resourceNamespace, JsonPatchOperation[] patchRequest) where TResource : KubeResourceV1; } } ================================================ FILE: test/KubeClient.TestCommon/Mocks/MockKubeApiExtensions.cs ================================================ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Newtonsoft.Json.Linq; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reactive.Subjects; using System.Threading; using System.Threading.Tasks; using Xunit; using NJ = Newtonsoft.Json; namespace KubeClient.TestCommon.Mocks { using ApiMetadata; using Models; /// /// Extensions for configuring . /// public static class MockKubeApiExtensions { /// /// Configure the mock API to handle all standard requests for the specified resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The type of model (derived from ) used to represent a list of s. /// /// /// The that will host the mock API. /// /// /// A that will be used as a backing store to represent resource instances. /// /// /// The configured . /// public static WebApplication HandleResources(this WebApplication mockKubeApiApp, ConcurrentDictionary resources) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1, new() { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (resources == null) throw new ArgumentNullException(nameof(resources)); Subject watchSubject = new Subject(); mockKubeApiApp.Lifetime.ApplicationStopping.Register(() => { using (watchSubject) { watchSubject.OnCompleted(); } }); mockKubeApiApp.HandleResources( listResources: (string resourceNamespace) => { IEnumerable matchingResources = resources.Values; if (resourceNamespace != null) { matchingResources = matchingResources.Where( resource => resource.Metadata?.Namespace == resourceNamespace ); } return matchingResources .OrderBy( resource => resource.Metadata?.Name ?? String.Empty ) .ToList(); }, loadResource: (string resourceName, string resourceNamespace) => { string persistenceKey = MockKubeApi.GetResourceKey(resourceName, resourceNamespace); if (resources.TryGetValue(persistenceKey, out TResource persistedResource)) return persistedResource; return null; }, saveResource: (TResource resource) => { string persistenceKey = MockKubeApi.GetResourceKey(resource.Metadata); TResource persistedResource = resources.AddOrUpdate(persistenceKey, addValue: resource, updateValueFactory: (string persistenceKey, TResource updatedResource) => resource ); return persistedResource; }, watchSubject ); return mockKubeApiApp; } /// /// Configure the mock API to handle all standard requests for the specified resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The type of model (derived from ) used to represent a list of s. /// /// /// The that will host the mock API. /// /// /// A that will be used as a backing store to represent resource instances. /// /// /// A that can be used to publish or observe resource-change notifications. /// /// /// The configured . /// public static WebApplication HandleResources(this WebApplication mockKubeApiApp, ConcurrentDictionary resources, ISubject watchSubject) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1, new() { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (resources == null) throw new ArgumentNullException(nameof(resources)); if (watchSubject == null) throw new ArgumentNullException(nameof(watchSubject)); mockKubeApiApp.HandleResources( listResources: (string resourceNamespace) => { IEnumerable matchingResources = resources.Values; if (resourceNamespace != null) { matchingResources = matchingResources.Where( resource => resource.Metadata?.Namespace == resourceNamespace ); } return matchingResources .OrderBy( resource => resource.Metadata?.Name ?? String.Empty ) .ToList(); }, loadResource: (string resourceName, string resourceNamespace) => { string persistenceKey = MockKubeApi.GetResourceKey(resourceName, resourceNamespace); if (resources.TryGetValue(persistenceKey, out TResource persistedResource)) return persistedResource; return null; }, saveResource: (TResource resource) => { string persistenceKey = MockKubeApi.GetResourceKey(resource.Metadata); TResource persistedResource = resources.AddOrUpdate(persistenceKey, addValue: resource, updateValueFactory: (string persistenceKey, TResource updatedResource) => resource ); return persistedResource; }, watchSubject ); return mockKubeApiApp; } /// /// Configure the mock API to handle all standard requests for the specified resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The type of model (derived from ) used to represent a list of s. /// /// /// The that will host the mock API. /// /// /// A delegate that is called to obtain a list of all resources of the specified type. /// /// /// Return value is a sequence of resources. /// /// /// /// A delegate that is called to retrieve a single persisted resource of the specified type. /// /// /// Arguments are the name namespace of the target resource, return value is the persisted resource. /// /// /// /// A delegate that is called to persist a single resource of the specified type. /// /// /// Argument is resource to persist, return value is the persisted resource. /// /// /// /// The configured . /// public static WebApplication HandleResources(this WebApplication mockKubeApiApp, Func> listResources, Func loadResource, Func saveResource, ISubject watchSubject) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1, new() { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (listResources == null) throw new ArgumentNullException(nameof(listResources)); if (loadResource == null) throw new ArgumentNullException(nameof(loadResource)); if (saveResource == null) throw new ArgumentNullException(nameof(saveResource)); if (watchSubject == null) throw new ArgumentNullException(nameof(watchSubject)); KubeApiMetadataCache apiMetadataCache = LoadMetadata(); (string resourceKind, string resourceApiVersion) = KubeObjectV1.GetKubeKind(); KubeApiMetadata resourceMetadata = apiMetadataCache.Get(resourceKind, resourceApiVersion); if (resourceMetadata == null) throw new InvalidOperationException($"Failed to load metadata for the resource type represented by model '{typeof(TResource).FullName}.'."); (string listKind, string listApiVersion) = KubeObjectV1.GetKubeKind(); KubeApiPathMetadata listPath = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.List); if (listPath == null) throw new InvalidOperationException($"Cannot determine the resource-list path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata getPath = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Get); if (getPath == null) throw new InvalidOperationException($"Cannot determine the resource-get path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata createPath = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Create); if (createPath == null) throw new InvalidOperationException($"Cannot determine the resource-create path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata updatePath = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Update); if (updatePath == null) throw new InvalidOperationException($"Cannot determine the resource-update path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata patchPath = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Patch); if (patchPath == null) throw new InvalidOperationException($"Cannot determine the resource-patch path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata watchPath = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Watch); if (watchPath == null) throw new InvalidOperationException($"Cannot determine the resource-create path for the resource type represented by model '{typeof(TResource).FullName}.'."); // We need to handle namespaced paths differently because of how ASP.NET Core Minimal APIs does route matching / parameter binding on path segments. bool isNamespaced = listPath.IsNamespaced; if (isNamespaced) { mockKubeApiApp.HandleResourceList(listPath.Path, (string resourceNamespace) => { List resources = listResources(resourceNamespace); if (resources == null) throw new InvalidOperationException($"Resource-list handler for {resourceApiVersion}/{resourceKind} returned null."); TResourceList resourceList = new TResourceList(); resourceList.Items.AddRange(resources); return resourceList; }); mockKubeApiApp.HandleResourceGet(getPath.Path, (string resourceName, string resourceNamespace) => { TResource resource = loadResource(resourceName, resourceNamespace); return resource; }); mockKubeApiApp.HandleResourcePatch(patchPath.Path, (string resourceName, string resourceNamespace, JsonPatchOperation[] patchRequest) => { TResource persistedResource = loadResource(resourceName, resourceNamespace); if (persistedResource == null) return null; TResource patchedResource = persistedResource.ApplyJsonPatch(patchRequest); persistedResource = saveResource(patchedResource); watchSubject.OnNext(persistedResource); return persistedResource; }); } else { mockKubeApiApp.HandleResourceList(listPath.Path, () => { string resourceNamespace = null; List resources = listResources(resourceNamespace); if (resources == null) throw new InvalidOperationException($"Resource-list handler for {resourceApiVersion}/{resourceKind} returned null."); TResourceList resourceList = new TResourceList(); resourceList.Items.AddRange(resources); return resourceList; }); mockKubeApiApp.HandleResourceGet(getPath.Path, (string resourceName) => { string resourceNamespace = null; TResource resource = loadResource(resourceName, resourceNamespace); return resource; }); mockKubeApiApp.HandleResourcePatch(patchPath.Path, (string resourceName, string resourceNamespace, JsonPatchOperation[] patchRequest) => { TResource persistedResource = loadResource(resourceName, resourceNamespace); if (persistedResource == null) return null; TResource patchedResource = persistedResource.ApplyJsonPatch(patchRequest); persistedResource = saveResource(patchedResource); watchSubject.OnNext(persistedResource); return persistedResource; }); } mockKubeApiApp.HandleResourceCreate(createPath.Path, (TResource initialResource) => { TResource persistedResource = saveResource(initialResource); watchSubject.OnNext(persistedResource); return persistedResource; }); mockKubeApiApp.HandleResourceUpdate(updatePath.Path, (TResource updatedResource) => { TResource persistedResource = saveResource(updatedResource); watchSubject.OnNext(persistedResource); return persistedResource; }); mockKubeApiApp.HandleResourceWatch(watchPath.Path, watchSubject); return mockKubeApiApp; } /// /// Configure the mock API to handle all standard (CRUD) requests for a single resource of the specified type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The name of the target resource. /// /// /// The namespace of the target resource (if applicable). /// /// /// The configured . /// public static WebApplication HandleSingleResource(this WebApplication mockKubeApiApp, string resourceName, string resourceNamespace) where TResource : KubeResourceV1 { if (String.IsNullOrWhiteSpace(resourceName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourceName)}.", nameof(resourceName)); Subject watchSubject = new Subject(); mockKubeApiApp.Lifetime.ApplicationStopping.Register(() => { using (watchSubject) { watchSubject.OnCompleted(); } }); mockKubeApiApp.HandleSingleResource(resourceName, resourceNamespace, watchSubject); return mockKubeApiApp; } /// /// Configure the mock API to handle all standard (CRUD, Watch) requests for a single resource of the specified type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The name of the target resource. /// /// /// The namespace of the target resource (if applicable). /// /// /// An that can be used to publish / subscribe to resource-watch notifications for the target resource. /// /// /// The configured . /// public static WebApplication HandleSingleResource(this WebApplication mockKubeApiApp, string resourceName, string resourceNamespace, ISubject watchSubject) where TResource : KubeResourceV1 { if (String.IsNullOrWhiteSpace(resourceName)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourceName)}.", nameof(resourceName)); TResource resourceState = null; KubeApiMetadataCache apiMetadataCache = LoadMetadata(); (string resourceKind, string resourceApiVersion) = KubeObjectV1.GetKubeKind(); KubeApiMetadata resourceMetadata = apiMetadataCache.Get(resourceKind, resourceApiVersion); if (resourceMetadata == null) throw new InvalidOperationException($"Failed to load metadata for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata getPathMetadata = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Get); if (getPathMetadata == null) throw new InvalidOperationException($"Cannot determine the resource-get path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata createPathMetadata = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Create); if (createPathMetadata == null) throw new InvalidOperationException($"Cannot determine the resource-create path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata updatePathMetadata = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Update); if (updatePathMetadata == null) throw new InvalidOperationException($"Cannot determine the resource-update path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata patchPathMetadata = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Patch); if (patchPathMetadata == null) throw new InvalidOperationException($"Cannot determine the resource-patch path for the resource type represented by model '{typeof(TResource).FullName}.'."); KubeApiPathMetadata watchPathMetadata = resourceMetadata.FindApiPathPreferringNamespaced(KubeAction.Watch); if (watchPathMetadata == null) throw new InvalidOperationException($"Cannot determine the resource-create path for the resource type represented by model '{typeof(TResource).FullName}.'."); // We need to handle namespaced paths differently because of how ASP.NET Core Minimal APIs does route matching / parameter binding on path segments. bool isNamespaced = getPathMetadata.IsNamespaced; if (isNamespaced) { if (String.IsNullOrWhiteSpace(resourceNamespace)) throw new ArgumentException($"Must supply a valid resource namespace (resource type '{resourceApiVersion}/{resourceKind}' is namespaced).", nameof(resourceNamespace)); mockKubeApiApp.HandleResourceGet(getPathMetadata.Path, (string requestedResourceName, string requestedResourceNamespace) => { if (requestedResourceName != resourceName || requestedResourceNamespace != resourceNamespace) return null; return resourceState; }); mockKubeApiApp.HandleResourcePatch(patchPathMetadata.Path, (string requestedResourceName, string requestedResourceNamespace, JsonPatchOperation[] patchRequest) => { Assert.Equal(resourceName, requestedResourceName); Assert.Equal(resourceNamespace, requestedResourceNamespace); resourceState = resourceState.ApplyJsonPatch(patchRequest); return resourceState; }); } else { mockKubeApiApp.HandleResourceGet(getPathMetadata.Path, (string requestedResourceName) => { if (requestedResourceName != resourceName) return null; return resourceState; }); mockKubeApiApp.HandleResourcePatch(patchPathMetadata.Path, (string requestedResourceName, JsonPatchOperation[] patchRequest) => { Assert.Equal(resourceName, requestedResourceName); resourceState = resourceState.ApplyJsonPatch(patchRequest); return resourceState; }); } mockKubeApiApp.HandleResourceCreate(createPathMetadata.Path, (TResource initialResource) => { Assert.NotNull(initialResource.Metadata); Assert.Equal(resourceName, initialResource.Metadata.Name); Assert.Equal(resourceNamespace, initialResource.Metadata.Namespace); resourceState = initialResource; return resourceState; }); mockKubeApiApp.HandleResourceUpdate(updatePathMetadata.Path, (TResource updatedResource) => { Assert.NotNull(updatedResource.Metadata); Assert.Equal(resourceName, updatedResource.Metadata.Name); Assert.Equal(resourceNamespace, updatedResource.Metadata.Namespace); resourceState = updatedResource; return resourceState; }); mockKubeApiApp.HandleResourceWatch(watchPathMetadata.Path, watchSubject); return mockKubeApiApp; } /// /// Configure the mock API to handle list requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The type of model (derived from ) used to represent a list of s. /// /// /// The that will host the mock API. /// /// /// The path where resource-list requests should be handled. /// /// /// A handler delegate that returns all instances of the specified resource type. /// /// /// The configured . /// public static WebApplication HandleResourceList(this WebApplication mockKubeApiApp, string resourcesPath, MockKubeApi.ListResourcesHandler handler) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1, new() { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcesPath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcesPath)}.", nameof(resourcesPath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourceListAsync(resourcesPath, () => { TResourceList response = handler(); return Task.FromResult(response); }); return mockKubeApiApp; } /// /// Configure the mock API to handle list requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The type of model (derived from ) used to represent a list of s. /// /// /// The that will host the mock API. /// /// /// The path where resource-list requests should be handled. /// /// /// An asynchronous handler delegate that returns all instances of the specified resource type. /// /// /// The configured . /// public static WebApplication HandleResourceList(this WebApplication mockKubeApiApp, string resourcesPath, MockKubeApi.ListNamespacedResourcesHandler handler) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1, new() { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcesPath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcesPath)}.", nameof(resourcesPath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourceListAsync(resourcesPath, (string resourceNamespace) => { TResourceList response = handler(resourceNamespace); return Task.FromResult(response); }); return mockKubeApiApp; } /// /// Configure the mock API to handle list requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The type of model (derived from ) used to represent a list of s. /// /// /// The that will host the mock API. /// /// /// The path where resource-list requests should be handled. /// /// /// An asynchronous handler delegate that returns all instances of the specified resource type. /// /// /// The configured . /// public static WebApplication HandleResourceListAsync(this WebApplication mockKubeApiApp, string resourcesPath, MockKubeApi.AsyncListResourcesHandler asyncHandler) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1, new() { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcesPath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcesPath)}.", nameof(resourcesPath)); if (asyncHandler == null) throw new ArgumentNullException(nameof(asyncHandler)); mockKubeApiApp.MapGet(resourcesPath, async (HttpRequest request) => { ILogger logger = request.CreateLogger("MockKubeApi.ResourceListHandler"); TResourceList responseBody = await asyncHandler(); if (responseBody == null) { return Results.Content( content: NJ.JsonConvert.SerializeObject( StatusV1.Failure($"Resource-list handler for '{resourcesPath}' returned null.", reason: "InternalError", code: StatusCodes.Status500InternalServerError ) ), contentType: "application/json", statusCode: StatusCodes.Status500InternalServerError ); } (string resourceKind, string resourceApiVersion) = KubeObjectV1.GetKubeKind(); logger.LogInformation("List {ResourceApiVersion}/{ResourceKind} resources: {ResourceCount} resource(s) found.", resourceApiVersion, resourceKind, responseBody.Items.Count ); return Results.Content( content: NJ.JsonConvert.SerializeObject(responseBody), contentType: "application/json", statusCode: StatusCodes.Status200OK ); }); return mockKubeApiApp; } /// /// Configure the mock API to handle list requests for a (namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The type of model (derived from ) used to represent a list of s. /// /// /// The that will host the mock API. /// /// /// The path where resource-list requests should be handled. /// /// /// An asynchronous handler delegate that returns all instances of the specified resource type in a given namespace. /// /// /// The configured . /// public static WebApplication HandleResourceListAsync(this WebApplication mockKubeApiApp, string resourcesPath, MockKubeApi.AsyncListNamespacedResourcesHandler asyncHandler) where TResource : KubeResourceV1 where TResourceList : KubeResourceListV1, new() { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcesPath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcesPath)}.", nameof(resourcesPath)); if (asyncHandler == null) throw new ArgumentNullException(nameof(asyncHandler)); mockKubeApiApp.MapGet(resourcesPath, async (string @namespace, HttpRequest request) => { ILogger logger = request.CreateLogger("MockKubeApi.ResourceListHandler"); TResourceList responseBody = await asyncHandler(@namespace); if (responseBody == null) { return Results.Content( content: NJ.JsonConvert.SerializeObject( StatusV1.Failure($"Resource-list handler for '{resourcesPath}' returned null.", reason: "InternalError", code: StatusCodes.Status500InternalServerError ) ), contentType: "application/json", statusCode: StatusCodes.Status500InternalServerError ); } (string resourceKind, string resourceApiVersion) = KubeObjectV1.GetKubeKind(); logger.LogInformation("List {ResourceApiVersion}/{ResourceKind} resources in namespace {ResourceNamespace}: {ResourceCount} resource(s) found.", resourceApiVersion, resourceKind, @namespace, responseBody.Items.Count ); return MockApiResults.Ok(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle get requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-get requests should be handled. /// /// /// A handler delegate that returns the resource matching a given resource name (or null, if no resource matches that name). /// /// /// The configured . /// public static WebApplication HandleResourceGet(this WebApplication mockKubeApiApp, string resourcePathTemplate, MockKubeApi.LoadResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePathTemplate)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePathTemplate)}.", nameof(resourcePathTemplate)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourceGetAsync(resourcePathTemplate, (string resourceName) => { TResource response = handler(resourceName); return Task.FromResult(response); }); return mockKubeApiApp; } /// /// Configure the mock API to handle get requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-get requests should be handled. /// /// /// A handler delegate that returns the resource matching a given resource name and namespace (or null, if no resource matches that name and namespace). /// /// /// The configured . /// public static WebApplication HandleResourceGet(this WebApplication mockKubeApiApp, string resourcePathTemplate, MockKubeApi.LoadNamespacedResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePathTemplate)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePathTemplate)}.", nameof(resourcePathTemplate)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourceGetAsync(resourcePathTemplate, (string resourceName, string resourceNamespace) => { TResource response = handler(resourceName, resourceNamespace); return Task.FromResult(response); }); return mockKubeApiApp; } /// /// Configure the mock API to handle get requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-get requests should be handled. /// /// /// An asynchronous handler delegate that returns the resource matching a given resource name (or null, if no resource matches that name). /// /// /// The configured . /// public static WebApplication HandleResourceGetAsync(this WebApplication mockKubeApiApp, string resourcePathTemplate, MockKubeApi.AsyncLoadResourceHandler asyncHandler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePathTemplate)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePathTemplate)}.", nameof(resourcePathTemplate)); if (asyncHandler == null) throw new ArgumentNullException(nameof(asyncHandler)); mockKubeApiApp.MapGet(resourcePathTemplate, async (string name) => { TResource responseBody = await asyncHandler(name); if (responseBody == null) { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); return MockApiResults.NotFound( StatusV1.Failure($"{apiVersion}/{kind} resource '{name}' was not found.", "NotFound") ); } return MockApiResults.Ok(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle get requests for a (namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-get requests should be handled. /// /// /// An asynchronous handler delegate that returns the resource matching a given resource name and namespace (or null, if no resource matches that name and namespace). /// /// /// The configured . /// public static WebApplication HandleResourceGetAsync(this WebApplication mockKubeApiApp, string resourcePathTemplate, MockKubeApi.AsyncLoadNamespacedResourceHandler asyncHandler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePathTemplate)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePathTemplate)}.", nameof(resourcePathTemplate)); if (asyncHandler == null) throw new ArgumentNullException(nameof(asyncHandler)); mockKubeApiApp.MapGet(resourcePathTemplate, async (string name, string @namespace) => { TResource responseBody = await asyncHandler(name, @namespace); if (responseBody == null) { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); string resourceName = !String.IsNullOrWhiteSpace(@namespace) ? $"{@namespace}/{name}" : name; return MockApiResults.NotFound( StatusV1.Failure($"{apiVersion}/{kind} resource '{resourceName}' was not found.", "NotFound") ); } return MockApiResults.Ok(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle create requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// A handler delegate that persists state for the supplied resource, returning the persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourceCreate(this WebApplication mockKubeApiApp, string resourcePathTemplate, MockKubeApi.SaveResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePathTemplate)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePathTemplate)}.", nameof(resourcePathTemplate)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourceCreateAsync(resourcePathTemplate, (TResource request) => { TResource responseBody = handler(request); return Task.FromResult(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle create requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// An asynchronous handler delegate that persists state for the supplied resource, returning the persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourceCreateAsync(this WebApplication mockKubeApiApp, string resourcePath, MockKubeApi.AsyncSaveResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePath)}.", nameof(resourcePath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.MapPost(resourcePath, async (HttpRequest request) => { TResource requestBody = request.ReadAsNewtonsoftJson(); TResource responseBody = await handler(requestBody); if (responseBody == null) { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); string resourceName = Path.GetFileNameWithoutExtension(resourcePath); return MockApiResults.NotFound( StatusV1.Failure($"{apiVersion}/{kind} resource '{resourceName}' was not found.", "NotFound") ); } return MockApiResults.Ok(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle update requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// A handler delegate that persists state for the supplied resource, returning the persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourceUpdate(this WebApplication mockKubeApiApp, string resourcePath, MockKubeApi.SaveResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePath)}.", nameof(resourcePath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourceUpdateAsync(resourcePath, (TResource request) => { TResource response = handler(request); return Task.FromResult(response); }); return mockKubeApiApp; } /// /// Configure the mock API to handle update requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// An asynchronous handler delegate that persists state for the supplied resource, returning the persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourceUpdateAsync(this WebApplication mockKubeApiApp, string resourcePath, MockKubeApi.AsyncSaveResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePath)}.", nameof(resourcePath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.MapPut(resourcePath, async (HttpRequest request) => { TResource requestBody = request.ReadAsNewtonsoftJson(); TResource responseBody = await handler(requestBody); if (responseBody == null) { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); string resourceName = Path.GetFileNameWithoutExtension(resourcePath); return MockApiResults.NotFound( StatusV1.Failure($"{apiVersion}/{kind} resource '{resourceName}' was not found.", "NotFound") ); } return MockApiResults.Ok(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle patch requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// An asynchronous handler delegate that applies one or more patch operations to persisted resource state, returning the (patched) persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourcePatch(this WebApplication mockKubeApiApp, string resourcePath, MockKubeApi.PatchResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePath)}.", nameof(resourcePath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourcePatchAsync(resourcePath, (string name, JsonPatchOperation[] patchRequest) => { TResource responseBody = handler(name, patchRequest); return Task.FromResult(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle patch requests for a (namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// A handler delegate that applies one or more patch operations to persisted resource state, returning the (patched) persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourcePatch(this WebApplication mockKubeApiApp, string resourcePath, MockKubeApi.PatchNamespacedResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePath)}.", nameof(resourcePath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.HandleResourcePatchAsync(resourcePath, (string name, string @namespace, JsonPatchOperation[] patchRequest) => { TResource responseBody = handler(name, @namespace, patchRequest); return Task.FromResult(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle patch requests for a (non-namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// An asynchronous handler delegate that applies one or more patch operations to persisted resource state, returning the (patched) persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourcePatchAsync(this WebApplication mockKubeApiApp, string resourcePath, MockKubeApi.AsyncPatchResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePath)}.", nameof(resourcePath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.MapPatch(resourcePath, async (string name, HttpRequest request) => { ILogger logger = request.CreateLogger("MockKubeApi.ResourcePatchHandler"); JsonPatchOperation[] patchRequest = request.ReadAsJsonPatchOperations(); if (logger.IsEnabled(LogLevel.Debug)) { JArray patchRequestJson = request.ReadAsNewtonsoftJArray(); logger.LogDebug("Patch request: {PatchRequest}", patchRequestJson.ToString(NJ.Formatting.None)); } TResource responseBody = await handler(name, patchRequest); if (responseBody == null) { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); return MockApiResults.NotFound( StatusV1.Failure($"{apiVersion}/{kind} resource '{name}' was not found.", "NotFound") ); } return MockApiResults.Ok(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle patch requests for a (namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-create requests should be handled. /// /// /// An asynchronous handler delegate that applies one or more patch operations to persisted resource state, returning the (patched) persisted resource state. /// /// /// The configured . /// public static WebApplication HandleResourcePatchAsync(this WebApplication mockKubeApiApp, string resourcePath, MockKubeApi.AsyncPatchNamespacedResourceHandler handler) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourcePath)}.", nameof(resourcePath)); if (handler == null) throw new ArgumentNullException(nameof(handler)); mockKubeApiApp.MapPatch(resourcePath, async (string name, string @namespace, HttpRequest request) => { ILogger logger = request.CreateLogger("MockKubeApi.ResourcePatchHandler"); JsonPatchOperation[] patchRequest = request.ReadAsJsonPatchOperations(); if (logger.IsEnabled(LogLevel.Debug)) { JArray patchRequestJson = request.ReadAsNewtonsoftJArray(); logger.LogDebug("Patch request: {PatchRequest}", patchRequestJson.ToString(NJ.Formatting.None)); } TResource responseBody = await handler(name, @namespace, patchRequest); if (responseBody == null) { (string kind, string apiVersion) = KubeObjectV1.GetKubeKind(); return MockApiResults.NotFound( StatusV1.Failure($"{apiVersion}/{kind} resource '{name}' was not found.", "NotFound") ); } return MockApiResults.Ok(responseBody); }); return mockKubeApiApp; } /// /// Configure the mock API to handle watch requests for a (namespaced) resource type. /// /// /// The type of model (derived from ) used to represent the resource. /// /// /// The that will host the mock API. /// /// /// The path template where resource-watch requests should be handled. /// /// /// An sequence of resource states that will be published to watchers. /// /// /// The configured . /// public static WebApplication HandleResourceWatch(this WebApplication mockKubeApiApp, string resourceWatchPath, IObservable resourceStates) where TResource : KubeResourceV1 { if (mockKubeApiApp == null) throw new ArgumentNullException(nameof(mockKubeApiApp)); if (String.IsNullOrWhiteSpace(resourceWatchPath)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(resourceWatchPath)}.", nameof(resourceWatchPath)); if (resourceStates == null) throw new ArgumentNullException(nameof(resourceStates)); mockKubeApiApp.MapGet(resourceWatchPath, async context => { // Used to block the request from completing until either the resourceStates sequence is completed/faulted, or the request is aborted. using SemaphoreSlim requestCompleted = new SemaphoreSlim(initialCount: 0, maxCount: 1); void EndRequest() { try { requestCompleted.Release(); } catch (SemaphoreFullException) { // Either the resource-state sequence has completed/faulted, or the request was canceled. } } context.RequestAborted.Register( () => EndRequest() ); context.Response.Headers.ContentType = "application/json"; context.Response.StatusCode = 200; using StreamWriter bodyWriter = new StreamWriter(context.Response.Body) { AutoFlush = true }; resourceStates.Subscribe( onNext: (TResource resource) => { string resourceJson = NJ.JsonConvert.SerializeObject(resource); bodyWriter.WriteLine(resourceJson); }, onError: (Exception exception) => { mockKubeApiApp.Logger.LogError(exception, "Unexpected error while streaming watched resource state."); EndRequest(); }, onCompleted: () => { EndRequest(); }, token: context.RequestAborted ); try { // Don't complete the request until we're done streaming events. await requestCompleted.WaitAsync(context.RequestAborted); } catch (OperationCanceledException waitCanceled) { if (waitCanceled.CancellationToken != context.RequestAborted) throw; } }); return mockKubeApiApp; } /// /// Create a named logger. /// /// /// The whose will be used to create the logger. /// /// /// The name of the logger to create. /// /// /// The logger. /// public static ILogger CreateLogger(this HttpRequest request, string name) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(name)}.", nameof(name)); return request.HttpContext.CreateLogger(name); } /// /// Create a named logger. /// /// /// The whose request-level will be used to create the logger. /// /// /// The name of the logger to create. /// /// /// The logger. /// public static ILogger CreateLogger(this HttpContext httpContext, string name) { if (httpContext == null) throw new ArgumentNullException(nameof(httpContext)); if (String.IsNullOrWhiteSpace(name)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(name)}.", nameof(name)); return httpContext.RequestServices.GetRequiredService().CreateLogger(name); } /// /// Deserialise the request body from JSON (using Newtonsoft.Json). /// /// /// The type that the request body should be deserialised into. /// /// /// A representing the request. /// /// /// The deserialised request body (as ). /// public static TBody ReadAsNewtonsoftJson(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); using (StreamReader requestReader = new StreamReader(request.Body, leaveOpen: true)) using (NJ.JsonTextReader requestJsonReader = new NJ.JsonTextReader(requestReader)) { return NJ.JsonSerializer.Create().Deserialize(requestJsonReader); } } /// /// Read the request body as JSON (using Newtonsoft.Json). /// /// /// A representing the request. /// /// /// The deserialised request body (as a ). /// public static JToken ReadAsNewtonsoftJToken(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); using (StreamReader requestReader = new StreamReader(request.Body, leaveOpen: true)) using (NJ.JsonTextReader requestJsonReader = new NJ.JsonTextReader(requestReader)) { return JToken.Load(requestJsonReader); } } /// /// Read the request body as JSON (using Newtonsoft.Json). /// /// /// A representing the request. /// /// /// The deserialised request body (as a ). /// public static JObject ReadAsNewtonsoftJObject(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); using (StreamReader requestReader = new StreamReader(request.Body, leaveOpen: true)) using (NJ.JsonTextReader requestJsonReader = new NJ.JsonTextReader(requestReader)) { return JObject.Load(requestJsonReader); } } /// /// Read the request body as JSON (using Newtonsoft.Json). /// /// /// A representing the request. /// /// /// The deserialised request body (as a ). /// public static JArray ReadAsNewtonsoftJArray(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); using (StreamReader requestReader = new StreamReader(request.Body, leaveOpen: true)) using (NJ.JsonTextReader requestJsonReader = new NJ.JsonTextReader(requestReader)) { return JArray.Load(requestJsonReader); } } /// /// Read the request body as as s. /// /// /// A representing the request. /// /// /// The deserialised request body (as an array of s). /// public static JsonPatchOperation[] ReadAsJsonPatchOperations(this HttpRequest request) { if (request == null) throw new ArgumentNullException(nameof(request)); using (StreamReader requestReader = new StreamReader(request.Body, leaveOpen: true)) using (NJ.JsonTextReader requestJsonReader = new NJ.JsonTextReader(requestReader)) { return NJ.JsonSerializer.Create().Deserialize(requestJsonReader); } } /// /// Apply one or more JSON Patch operations to the target resource. /// /// /// The target resource type. /// /// /// The target resource. /// /// /// A containing the JSON Patch operations to perform. /// /// /// The patched . /// public static TResource ApplyJsonPatch(this TResource resource, params JsonPatchOperation[] patchOperations) where TResource : KubeResourceV1 { if (resource == null) throw new ArgumentNullException(nameof(resource)); if (patchOperations == null) throw new ArgumentNullException(nameof(patchOperations)); JObject resourceJson = JObject.FromObject(resource); foreach (JsonPatchOperation patchOperation in patchOperations) { patchOperation.EnsureValid(); JToken target = resourceJson.SelectJsonPatchPath(patchOperation.Path); switch (patchOperation.Kind) { case JsonPatchOperationKind.Delete: { if (target != null) target.Remove(); break; } case JsonPatchOperationKind.Replace: { switch ((target, patchOperation.Value)) { case (JObject targetObject, JObject replacementObject): { targetObject.Replace(replacementObject); break; } case (null, JObject newObject): { string parentPath = Path.GetDirectoryName(patchOperation.Path); JToken parent = resourceJson.SelectJsonPatchPath(parentPath); switch (parent) { case JArray parentArray: { parentArray.Add(target); break; } case JObject parentObject: { string propertyName = Path.GetFileName(patchOperation.Path); if (String.IsNullOrWhiteSpace(propertyName)) throw new NJ.JsonException($"Failed to apply JSON-patch '{patchOperation.Kind}' operation (cannot determine property name from target path '{patchOperation.Path}')."); parentObject[propertyName] = newObject; break; } case null: { throw new NJ.JsonException($"Failed to apply JSON-patch '{patchOperation.Kind}' operation (parent of target token '{patchOperation.Path}' was not found)."); } default: { throw new NJ.JsonException($"Failed to apply JSON-patch '{patchOperation.Kind}' operation (parent of target token is of type '{parent.Type}', which is not a container)."); } } break; } default: { throw new NJ.JsonException($"Failed to apply JSON-patch '{patchOperation.Kind}' operation (target token '{patchOperation.Path}' is of type {target.Type}, which is not supported when the patch value is of type '{patchOperation.Value.Type}')."); } } break; } default: { throw new NJ.JsonException($"Failed to apply JSON-patch '{patchOperation.Kind}' operation (not a supported operation)."); } } } TResource patchedResource; using (NJ.JsonReader patchedJsonReader = resourceJson.CreateReader()) { patchedResource = NJ.JsonSerializer.Create().Deserialize(patchedJsonReader); } return patchedResource; } static JToken SelectJsonPatchPath(this JToken token, string jsonPatchPath) { if (token == null) throw new ArgumentNullException(nameof(token)); string jsonPath = JsonPatchPathToJsonPath(jsonPatchPath); if (String.IsNullOrWhiteSpace(jsonPatchPath)) return jsonPath; return token.SelectToken(jsonPath); } static string JsonPatchPathToJsonPath(string jsonPatchPath) { if (jsonPatchPath == null) throw new ArgumentNullException(nameof(jsonPatchPath)); jsonPatchPath = jsonPatchPath.Trim().Replace('\\', '/'); switch (jsonPatchPath) { case "/": { return String.Empty; } default: { return '$' + jsonPatchPath.Replace('/', '.'); } } } static string GetPathParent(string path) { ReadOnlySpan parent = GetPathParent(path.AsSpan()); if (parent.Length == path.Length) return path; return new String(parent); } static ReadOnlySpan GetPathParent(ReadOnlySpan path) { path = path.TrimEnd('/'); if (path.IsEmpty) return path; int lastSeparatorIndex = path.LastIndexOf('/'); if (lastSeparatorIndex == -1) return path; return path[..lastSeparatorIndex]; } static KubeApiMetadataCache LoadMetadata() where TResource : KubeResourceV1 { KubeApiMetadataCache apiMetadataCache = new KubeApiMetadataCache(); apiMetadataCache.LoadFromMetadata( typeof(PodV1).Assembly ); apiMetadataCache.LoadFromMetadata( typeof(TResource).Assembly ); return apiMetadataCache; } static KubeApiPathMetadata FindApiPathPreferringNamespaced(this KubeApiMetadata apiMetadata, KubeAction action) { if (apiMetadata == null) throw new ArgumentNullException(nameof(apiMetadata)); List candidatePaths = apiMetadata.PathMetadata .Where( path => path.SupportsAction(action) ) .ToList(); KubeApiPathMetadata path = candidatePaths.FirstOrDefault(path => path.IsNamespaced) ?? candidatePaths.FirstOrDefault(path => !path.IsNamespaced); return path; } } } ================================================ FILE: test/KubeClient.TestCommon/Mocks/NewtonsoftJsonHttpResult.cs ================================================ using Microsoft.AspNetCore.Http; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; using System.IO; using System.Threading.Tasks; namespace KubeClient.TestCommon.Mocks { /// /// A minimal API result that serialises its value using the Newtonsoft JSON serialiser. /// /// public class NewtonsoftJsonHttpResult : IResult, IStatusCodeHttpResult, IValueHttpResult, IValueHttpResult, IContentTypeHttpResult { public NewtonsoftJsonHttpResult(TValue value, int? statusCode = null, string contentType = "application/json") { if (String.IsNullOrWhiteSpace(contentType)) throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(contentType)}.", nameof(contentType)); Value = value; StatusCode = statusCode; ContentType = contentType; } /// /// The value to be serialised and sent as the response body. /// public TValue Value { get; } /// /// The response status code (if null, the existing response status code is used). /// public int? StatusCode { get; } /// /// The response content type. /// public string ContentType { get; } /// /// The value to be serialised and sent as the response body. /// object IValueHttpResult.Value => Value; /// /// Execute the result. /// /// /// The for the current request. /// /// /// A representing the asynchronous operation. /// public async Task ExecuteAsync(HttpContext httpContext) { if (httpContext == null) throw new ArgumentNullException(nameof(httpContext)); if (StatusCode != null) httpContext.Response.StatusCode = StatusCode.Value; httpContext.Response.ContentType = ContentType; JsonSerializer serializer = JsonSerializer.CreateDefault(new JsonSerializerSettings { Converters = { new StringEnumConverter(), }, DefaultValueHandling = DefaultValueHandling.Ignore, }); using (MemoryStream buffer = new MemoryStream()) using (StreamWriter bufferWriter = new StreamWriter(buffer)) { serializer.Serialize(bufferWriter, Value, objectType: typeof(TValue) ); bufferWriter.Flush(); buffer.Seek(0, SeekOrigin.Begin); await buffer.CopyToAsync(httpContext.Response.Body, cancellationToken: httpContext.RequestAborted ); } } } } ================================================ FILE: test/KubeClient.TestCommon/TestBase.cs ================================================ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.Reactive.Disposables; using System.Reflection; using System.Threading; using Xunit; using Xunit.Abstractions; namespace KubeClient.TestCommon { using Logging; /// /// The base class for test suites. /// public abstract class TestBase : IDisposable { /// /// The test-level service provider. /// ServiceProvider _serviceProvider; /// /// The test-level logger. /// ILogger _testLogger; /// /// Create a new test-suite. /// /// /// Output for the current test. /// protected TestBase(ITestOutputHelper testOutput) { if (testOutput == null) throw new ArgumentNullException(nameof(testOutput)); // We *must* have a synchronisation context for the test, or we'll see random deadlocks. if (SynchronizationContext.Current == null) { SynchronizationContext.SetSynchronizationContext( new SynchronizationContext() ); } TestOutput = testOutput; // Ugly hack to get access to the current test. CurrentTest = (ITest) TestOutput.GetType() .GetField("test", BindingFlags.NonPublic | BindingFlags.Instance) .GetValue(TestOutput); Assert.True(CurrentTest != null, "Cannot retrieve current test from ITestOutputHelper."); } /// /// Finaliser for . /// ~TestBase() { Dispose(false); } /// /// Dispose of resources being used by the test suite. /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// /// Dispose of resources being used by the test suite. /// /// /// Explicit disposal? /// protected virtual void Dispose(bool disposing) { if (disposing) { using (Disposal) { if (_serviceProvider != null) { _serviceProvider.Dispose(); _serviceProvider = null; } } } } /// /// A representing resources used by the test. /// protected CompositeDisposable Disposal { get; } = new CompositeDisposable(); /// /// Output for the current test. /// protected ITestOutputHelper TestOutput { get; } /// /// A representing the current test. /// protected ITest CurrentTest { get; } /// /// The logger factory for the current test. /// protected ILoggerFactory LoggerFactory => ServiceProvider.GetRequiredService(); /// /// The logger for the current test. /// protected ILogger Log { get { if (_testLogger == null) { _testLogger = LoggerFactory.CreateLogger("CurrentTest"); Disposal.Add( Log.BeginScope("{CurrentTest}", CurrentTest.DisplayName) ); } return _testLogger; } } /// /// The logging level for the current test. /// protected virtual LogLevel MinLogLevel => LogLevel.Information; /// /// The test-level service provider. /// protected IServiceProvider ServiceProvider { get { if (_serviceProvider == null) _serviceProvider = BuildServiceProvider(); return _serviceProvider; } } /// /// Create and use a scoped (via ). /// /// /// A delegate that uses the scoped service provider. /// protected void UseScopedServiceProvider(Action action) { if (action == null) throw new ArgumentNullException(nameof(action)); using (IServiceScope serviceScope = ServiceProvider.CreateScope()) { action(serviceScope.ServiceProvider); } } /// /// Create and use a scoped (via ). /// /// /// The action result type. /// /// /// A delegate that uses the scoped service provider and returns a . /// /// /// The result. /// protected TResult UseScopedServiceProvider(Func action) { if (action == null) throw new ArgumentNullException(nameof(action)); using (IServiceScope serviceScope = ServiceProvider.CreateScope()) { return action(serviceScope.ServiceProvider); } } /// /// Build a service provider using the test-level configuration. /// /// /// The configured . /// protected ServiceProvider BuildServiceProvider() { ServiceCollection services = new ServiceCollection(); ConfigureServices(services); return services.BuildServiceProvider(new ServiceProviderOptions { ValidateOnBuild = true, ValidateScopes = true, }); } /// /// Configure services for dependency-injection. /// /// /// The service collection to configure. /// protected virtual void ConfigureServices(IServiceCollection services) { if (services == null) throw new ArgumentNullException(nameof(services)); services.AddLogging(logging => { logging.SetMinimumLevel(MinLogLevel); logging.AddDebug(); logging.AddTestOutput(TestOutput, MinLogLevel); }); } } } ================================================ FILE: test/KubeClient.TestCommon.Tests/GlobalUsings.cs ================================================ global using Xunit; ================================================ FILE: test/KubeClient.TestCommon.Tests/KubeClient.TestCommon.Tests.csproj ================================================  net7.0;net8.0;net9.0;net10.0 ================================================ FILE: test/KubeClient.TestCommon.Tests/MockKubeApiTests.cs ================================================ using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Reactive.Subjects; using System.Threading; using System.Threading.Tasks; using Xunit.Abstractions; namespace KubeClient.TestCommon.Tests { using Mocks; using Models; using TestCommon; /// /// Basic tests for functionality. /// public class MockKubeApiTests : TestBase { public MockKubeApiTests(ITestOutputHelper testOutput) : base(testOutput) { } [Fact] public async Task Can_Watch_PodV1() { const string podWatchPath = "api/v1/namespaces/default/pods/my-pod"; Subject watchSource = new Subject(); List observedPodStates = new List(); MockKubeApi kubeApi = MockKubeApi.Create(TestOutput, api => { api.HandleResourceWatch(podWatchPath, watchSource); }); await using (kubeApi) { using CancellationTokenSource cancellationSource = new CancellationTokenSource(TimeSpan.FromSeconds(30)); using HttpClient apiHttpClient = kubeApi.CreateClient(); Log.LogInformation("Initiating pod watch request..."); using Stream watchResponseBody = await apiHttpClient.GetStreamAsync(podWatchPath, cancellationSource.Token); Log.LogInformation("Response-body stream is now available; starting to stream pod state..."); ILogger streamerLogger = LoggerFactory.CreateLogger(nameof(StreamPodState)); Task watchStreamer = StreamPodState(watchResponseBody, observedPodStates, streamerLogger, cancellationSource.Token); watchSource.OnNext(new PodV1 { Metadata = new ObjectMetaV1 { Name = "my-pod", Namespace = "default" }, Spec = new PodSpecV1 { }, Status = new PodStatusV1 { Message = "Message 1" }, }); watchSource.OnNext(new PodV1 { Metadata = new ObjectMetaV1 { Name = "my-pod", Namespace = "default" }, Spec = new PodSpecV1 { }, Status = new PodStatusV1 { Message = "Message 2" }, }); watchSource.OnCompleted(); await watchStreamer; } Assert.Contains(observedPodStates, pod => pod?.Status?.Message == "Message 1"); Assert.Contains(observedPodStates, pod => pod?.Status?.Message == "Message 2"); Assert.Equal(2, observedPodStates.Count); } async Task StreamPodState(Stream watchStream, List observedResourceStates, ILogger logger, CancellationToken cancellationToken) where TResource : KubeResourceV1 { if (watchStream == null) throw new ArgumentNullException(nameof(watchStream)); if (observedResourceStates == null) throw new ArgumentNullException(nameof(observedResourceStates)); if (logger == null) throw new ArgumentNullException(nameof(logger)); (string resourceKind, string resourceApiVersion) = KubeObjectV1.GetKubeKind(); using (StreamReader watchReader = new StreamReader(watchStream)) { string rawStateData; logger.LogInformation("Waiting for the first line of text from the state stream..."); while ((rawStateData = await watchReader.ReadLineAsync(cancellationToken)) != null) { logger.LogInformation("Got a line of text from the state stream: {RawStateData}", rawStateData); TResource resourceState = JsonConvert.DeserializeObject(rawStateData); observedResourceStates.Add(resourceState); logger.LogInformation("Successfully observed state #{StateCount} for {ResourceKind}{ResourceApiVersion} {ResourceName}.", observedResourceStates.Count, resourceKind, resourceApiVersion, resourceState.Metadata?.Name ); } } } } } ================================================ FILE: test/KubeClient.Tests/ErrorHandling/ExceptionTests.cs ================================================ using Newtonsoft.Json; using System; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; namespace KubeClient.Tests.ErrorHandling { using KubeClient.Http.Testability; using Models; using TestCommon; /// /// Tests relating to exceptions raised by . /// public class ExceptionTests : TestBase { /// /// Create a new exception test suite. /// /// /// Output for the current test. /// public ExceptionTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that listing Pod (v1) results in a if the server returns with a valid in the response body. /// [Fact(DisplayName = "List PodV1 returning InternalServerError with StatusV1 body throws KubeClientException")] public async Task List_Pods_InternalServerError_StatusV1_Throws_KubeClientException() { MockMessageHandler handler = new MockMessageHandler( (HttpRequestMessage request) => request.CreateResponse(HttpStatusCode.InternalServerError, responseBody: JsonConvert.SerializeObject(new StatusV1 { Code = 500, Reason = "TestError", Message = "Simulated API error.", Details = new StatusDetailsV1() }), mediaType: "application/json" ) ); KubeApiException exception; using (KubeApiClient client = handler.CreateClient(loggerFactory: LoggerFactory)) { exception = await Assert.ThrowsAsync( () => client.PodsV1().List() ); } Assert.True(exception.HasStatus); Assert.Equal(500, exception.Status.Code); Assert.Equal("TestError", exception.Status.Reason); Assert.Equal("Simulated API error.", exception.Status.Message); } /// /// Verify that listing Pod (v1) results in a if the server returns with a valid in the response body. /// [Fact(DisplayName = "List PodV1 returning InternalServerError with StatusV1 body throws KubeClientException")] public async Task Delete_Pod_InternalServerError_StatusV1_Throws_KubeApiException() { MockMessageHandler handler = new MockMessageHandler( (HttpRequestMessage request) => request.CreateResponse(HttpStatusCode.InternalServerError, responseBody: JsonConvert.SerializeObject(new StatusV1 { Code = 500, Reason = "TestError", Message = "Simulated API error.", Details = new StatusDetailsV1() }), mediaType: "application/json" ) ); KubeApiException exception; using (KubeApiClient client = handler.CreateClient(loggerFactory: LoggerFactory)) { exception = await Assert.ThrowsAsync(async () => { await client.PodsV1().Delete("my-pod", propagationPolicy: DeletePropagationPolicy.Background); }); Assert.True(exception.HasStatus); Assert.Equal(500, exception.Status.Code); Assert.Equal("TestError", exception.Status.Reason); Assert.Equal("Simulated API error.", exception.Status.Message); exception = await Assert.ThrowsAsync(async () => { await client.PodsV1().Delete("my-pod", propagationPolicy: DeletePropagationPolicy.Foreground); }); Assert.True(exception.HasStatus); Assert.Equal(500, exception.Status.Code); Assert.Equal("TestError", exception.Status.Reason); Assert.Equal("Simulated API error.", exception.Status.Message); } } } } ================================================ FILE: test/KubeClient.Tests/ErrorHandling/MockMessageHandler.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; namespace KubeClient.Tests.ErrorHandling { /// /// A mock implementation of for use in tests. /// public sealed class MockMessageHandler : HttpMessageHandler { /// /// The delegate that handles incoming requests and returns their responses. /// readonly Func> _handler; /// /// Create a new that performs the specified action when a request is made. /// /// /// An asynchronous delegate that is called when each request is made. /// public MockMessageHandler(Func> handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); _handler = handler; } /// /// Create a new that performs the specified action when a request is made. /// /// /// An asynchronous delegate that is called when each request is made. /// public MockMessageHandler(Func> handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); _handler = async (request, cancellationToken) => { return await handler(request); }; } /// /// Create a new that performs the specified action when a request is made. /// /// /// A delegate that is called when each request is made. /// public MockMessageHandler(Func handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); _handler = async (request, cancellationToken) => { await Task.Yield(); HttpResponseMessage response = handler(request); return response; }; } /// /// Create a new that performs the specified action when a request is made. /// /// /// A delegate that is called when each request is made. /// public MockMessageHandler(Func handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); _handler = async (request, cancellationToken) => { await Task.Yield(); HttpResponseMessage response = handler(); return response; }; } /// /// Create a new that performs the specified action when a request is made. /// /// /// An delegate that is called when each request is made. /// /// /// Because this handler does not return a response message, it should throw an exception. /// public MockMessageHandler(Action handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); _handler = async (request, cancellationToken) => { await Task.Yield(); handler(request); throw new NotImplementedException($"MockMessageHandler was passed an Action delegate; this overload should throw an exception."); }; } /// /// Create a new that performs the specified action when a request is made. /// /// /// An delegate that is called when each request is made. /// /// /// Because this handler does not return a response message, it should throw an exception. /// public MockMessageHandler(Action handler) { if (handler == null) throw new ArgumentNullException(nameof(handler)); _handler = async (request, cancellationToken) => { await Task.Yield(); handler(); throw new NotImplementedException($"MockMessageHandler was passed an Action delegate; this overload should throw an exception."); }; } /// /// Handle an HTTP request. /// /// /// The outgoing HTTP request message. /// /// /// A cancellation token that can be used to cancel the request. /// /// /// The resulting HTTP response message. /// protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { HttpResponseMessage response = await _handler(request, cancellationToken); return response; } /// /// Create a new that uses the to handle HTTP requests. /// /// /// Optional that can be used to configure the client. /// /// /// An optional that can be used for client-level logging. /// /// /// The configured . /// public KubeApiClient CreateClient(KubeClientOptions options = null, ILoggerFactory loggerFactory = null) { if (options == null) { options = new KubeClientOptions { AllowInsecure = true, ApiEndPoint = new Uri("http://localhost:12345") }; } HttpClient httpClient = new HttpClient(this) { BaseAddress = options.ApiEndPoint }; return KubeApiClient.CreateTestClient(httpClient, options ?? new KubeClientOptions { LoggerFactory = loggerFactory }); } } } ================================================ FILE: test/KubeClient.Tests/Http/BuildMessage/TypedRequest.cs ================================================ using System; using System.Net.Http; using Xunit; namespace KubeClient.Tests.Http.BuildMessage { using KubeClient.Http; using KubeClient.Http.Testability.Xunit; /// /// Message-building tests for an (). /// public class TypedRequest { /// /// The default context for requests used by tests. /// static readonly string DefaultContext = "Hello World"; /// /// An empty request. /// static readonly HttpRequest EmptyRequest = HttpRequest.Empty; /// /// A request with an absolute URI. /// static readonly HttpRequest AbsoluteRequest = HttpRequest.Create("http://localhost:1234"); /// /// A request with a relative URI. /// static readonly HttpRequest RelativeRequest = HttpRequest.Create("foo/bar"); #region Empty requests /// /// An throws . /// [Fact] public void Empty_Throws() { Assert.Throws(() => { EmptyRequest.BuildRequestMessage(HttpMethod.Get, DefaultContext); }); } #endregion Empty requests #region Relative URIs /// /// An with a relative URI throws if no base URI is supplied. /// [Fact] public void RelativeUri_NoBaseUri_Throws() { Assert.Throws(() => { RelativeRequest.BuildRequestMessage(HttpMethod.Get, DefaultContext); }); } /// /// An with a relative URI prepends the supplied base URI to the request URI. /// [Fact] public void RelativeUri_BaseUri_PrependsBaseUri() { Uri baseUri = new Uri("http://tintoy.io:5678/"); RequestAssert.MessageHasUri(RelativeRequest, DefaultContext, baseUri, expectedUri: new Uri(baseUri, RelativeRequest.Uri) ); } #endregion // Relative URIs #region Absolute URIs /// /// An with an absolute URI ignores the lack of a base URI and uses the request URI. /// [Fact] public void AbsoluteUri_NoBaseUri_UsesRequestUri() { RequestAssert.MessageHasUri(AbsoluteRequest, DefaultContext, expectedUri: AbsoluteRequest.Uri ); } /// /// An with an absolute URI ignores the supplied base URI and uses the request URI. /// [Fact] public void AbsoluteUri_BaseUri_UsesRequestUri() { Uri baseUri = new Uri("http://tintoy.io:5678/"); RequestAssert.MessageHasUri(AbsoluteRequest, DefaultContext, baseUri, expectedUri: AbsoluteRequest.Uri ); } #endregion // Absolute URIs } } ================================================ FILE: test/KubeClient.Tests/Http/BuildMessage/UntypedRequest.cs ================================================ using System; using System.Net.Http; using Xunit; namespace KubeClient.Tests.Http.BuildMessage { using KubeClient.Http; using KubeClient.Http.Testability.Xunit; /// /// Message-building tests for (). /// public class UntypedRequest { /// /// A request with an absolute URI. /// static readonly HttpRequest AbsoluteRequest = HttpRequest.Create("http://localhost:1234"); /// /// A request with a relative URI. /// static readonly HttpRequest RelativeRequest = HttpRequest.Create("foo/bar"); /// /// An throws . /// [Fact] public void Empty_Throws() { Assert.Throws(() => { HttpRequest.Empty.BuildRequestMessage(HttpMethod.Get); }); } /// /// An with a relative URI throws if no base URI is supplied. /// [Fact] public void RelativeUri_NoBaseUri_Throws() { Assert.Throws(() => { RelativeRequest.BuildRequestMessage(HttpMethod.Get); }); } /// /// An with a relative URI prepends the supplied base URI to the request URI. /// [Fact] public void RelativeUri_BaseUri_PrependsBaseUri() { Uri baseUri = new Uri("http://tintoy.io:5678/"); RequestAssert.MessageHasUri(RelativeRequest, baseUri, expectedUri: new Uri(baseUri, RelativeRequest.Uri) ); } /// /// An with an absolute URI ignores the lack of a base URI and uses the request URI. /// [Fact] public void AbsoluteUri_NoBaseUri_UsesRequestUri() { RequestAssert.MessageHasUri(AbsoluteRequest, expectedUri: AbsoluteRequest.Uri ); } /// /// An with an absolute URI ignores the supplied base URI and uses the request URI. /// [Fact] public void AbsoluteUri_BaseUri_UsesRequestUri() { Uri baseUri = new Uri("http://tintoy.io:5678/"); RequestAssert.MessageHasUri(AbsoluteRequest, baseUri, expectedUri: AbsoluteRequest.Uri ); } #region Template URIs /// /// An with an absolute template URI, using statically-bound template parameters. /// [Fact] public void Absoluteuri_Template() { HttpRequest request = HttpRequest.Factory.Create("http://localhost:1234/{action}/{id}") .WithTemplateParameter("action", "foo") .WithTemplateParameter("id", "bar"); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar" ); } /// /// An with an absolute template URI, using dynamically-bound template parameters. /// [Fact] public void AbsoluteUri_Template_DeferredValues() { string action = "foo"; string id = "bar"; HttpRequest request = HttpRequest.Factory.Create("http://localhost:1234/{action}/{id}") .WithTemplateParameter("action", () => action) .WithTemplateParameter("id", () => id); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar" ); action = "diddly"; id = "dee"; RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/diddly/dee" ); } /// /// An with an absolute template URI that includes a query component, using statically-bound template parameters. /// [Fact] public void AbsoluteUri_Template_Query() { HttpRequest request = HttpRequest.Factory.Create("http://localhost:1234/{action}/{id}?flag={flag}") .WithTemplateParameter("action", "foo") .WithTemplateParameter("id", "bar") .WithTemplateParameter("flag", true); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar?flag=True" ); } /// /// An with an absolute template URI that includes a query component, using dynamically-bound template parameters. /// [Fact] public void AbsoluteUri_Template_Query_DeferredValues() { string action = "foo"; string id = "bar"; bool? flag = true; HttpRequest request = HttpRequest.Factory.Create("http://localhost:1234/") .WithRelativeUri("{action}/{id}?flag={flag?}") .WithTemplateParameter("action", () => action) .WithTemplateParameter("id", () => id) .WithTemplateParameter("flag", () => flag); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar?flag=True" ); action = "diddly"; id = "dee"; flag = null; RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/diddly/dee" ); } #endregion // Template URIs #region Query parameters /// /// An with an absolute URI that adds a query component, using statically-bound template parameters. /// [Fact] public void AbsoluteUri_Query() { HttpRequest request = HttpRequest.Factory.Create("http://localhost:1234/foo/bar") .WithQueryParameter("flag", true); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar?flag=True" ); } /// /// An with an absolute URI that adds a query component, using dynamically-bound template parameters. /// [Fact] public void AbsoluteUri_AddQuery_DeferredValues() { bool? flag = true; HttpRequest request = HttpRequest.Factory.Create("http://localhost:1234/foo/bar") .WithQueryParameter("flag", () => flag); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar?flag=True" ); flag = null; RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar" ); } /// /// An with an absolute URI that adds a query component, with no additional path component). /// [Fact] public void AbsoluteUri_AddQuery_EmptyPath() { HttpRequest request = AbsoluteRequest.WithRelativeUri("foo/bar") .WithRelativeUri("?baz=bonk"); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar?baz=bonk" ); } /// /// An with an absolute URI that adds a query component, with no additional path component). /// [Fact] public void AbsoluteUri_WithQuery_AddQuery_EmptyPath() { HttpRequest request = AbsoluteRequest.WithRelativeUri("foo/bar?baz=bonk") .WithRelativeUri("?bo=diddly"); RequestAssert.MessageHasUri(request, expectedUri: "http://localhost:1234/foo/bar?baz=bonk&bo=diddly" ); } #endregion // Query parameters } } ================================================ FILE: test/KubeClient.Tests/Http/ClientBuilderTests.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; using Xunit.Sdk; namespace KubeClient.Tests.Http { using KubeClient.Http; using KubeClient.Http.Clients; using KubeClient.Http.Testability; using KubeClient.Http.Testability.MessageHandlers; using KubeClient.Http.Testability.Xunit; /// /// Unit-tests for . /// public class ClientBuilderTests { /// /// The base URI used for requests in tests. /// static readonly Uri BaseUri = new Uri("http://localhost"); /// /// The default path used for requests in tests. /// static readonly string TestRequestPath = "/foo/bar"; /// /// The default URI used for requests in tests. /// static readonly Uri TestRequestUri = new Uri(BaseUri, TestRequestPath); /// /// The default request used for tests. /// static readonly HttpRequest TestRequest = HttpRequest.Create(TestRequestPath); /// /// Verify that a , configured with the default message pipeline terminus, can build an with a custom message pipeline terminus. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task BuilderWithDefaultTerminus_Can_Build_Client_WithCustomTerminus() { using MockMessageHandler testHandler = TestHandlers.RespondWith(request => { MessageAssert.HasRequestUri(request, TestRequestUri); return request.CreateResponse(HttpStatusCode.Ambiguous); }); ClientBuilder builder = new ClientBuilder(); using HttpClient client = builder.CreateClient(BaseUri, messagePipelineTerminus: testHandler); using HttpResponseMessage response = await client.GetAsync(TestRequest); Assert.Equal(HttpStatusCode.Ambiguous, response.StatusCode); } /// /// Verify that a , configured with a custom message pipeline terminus, can build an with that message pipeline terminus. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task BuilderWithCustomTerminus_Can_Build_Client() { using MockMessageHandler testHandler = TestHandlers.RespondWith(request => { MessageAssert.HasRequestUri(request, TestRequestUri); return request.CreateResponse(HttpStatusCode.Ambiguous); }); ClientBuilder builder = new ClientBuilder().WithMessagePipelineTerminus(() => testHandler); using HttpClient client = builder.CreateClient(BaseUri); using HttpResponseMessage response = await client.GetAsync(TestRequest); Assert.Equal(HttpStatusCode.Ambiguous, response.StatusCode); } /// /// Verify that a , configured with a custom message pipeline terminus, can build an with a different message pipeline terminus. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task BuilderWithCustomTerminus_Can_Build_Client_WithCustomTerminus() { using MockMessageHandler testHandler1 = TestHandlers.RespondWith(request => { throw EqualException.ForMismatchedValues( expected: "testHandler2", actual: "testHandler1", banner: "Client was created with the wrong message pipeline terminus." ); }); using MockMessageHandler testHandler2 = TestHandlers.RespondWith(request => { MessageAssert.HasRequestUri(request, TestRequestUri); return request.CreateResponse(HttpStatusCode.SeeOther); }); ClientBuilder builder = new ClientBuilder().WithMessagePipelineTerminus(() => testHandler1); using HttpClient client = builder.CreateClient(BaseUri, messagePipelineTerminus: testHandler2); using HttpResponseMessage response = await client.GetAsync(TestRequest); Assert.Equal(HttpStatusCode.SeeOther, response.StatusCode); } } } ================================================ FILE: test/KubeClient.Tests/Http/Diagnostics/LogEntry.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Collections.Immutable; namespace KubeClient.Tests.Http.Diagnostics { /// /// Represents a log entry captured and republished by a . /// public class LogEntry { /// /// Create a new . /// /// /// The log entry's level (severity). /// /// /// The log entry's event Id. /// /// /// The log message. /// /// /// The log entry's associated exception (if any). /// /// /// State data associated with the log entry. /// /// /// Properties (if any) associated with the log entry. /// public LogEntry(LogLevel level, EventId eventId, string message, Exception exception, object state, ImmutableDictionary properties) { if (message == null) throw new ArgumentNullException(nameof(message)); if (properties == null) throw new ArgumentNullException(nameof(properties)); Level = level; EventId = eventId; Message = message; Exception = exception; State = state; Properties = properties; } /// /// The log entry's level (severity). /// public LogLevel Level { get; } /// /// The log entry's event Id. /// public EventId EventId { get; } /// /// The log message. /// public string Message { get; } /// /// The log entry's associated exception (if any). /// public Exception Exception { get; } /// /// State data associated with the log entry. /// public object State { get; } /// /// Properties associated with the log entry (if any). /// public ImmutableDictionary Properties { get; } } } ================================================ FILE: test/KubeClient.Tests/Http/Diagnostics/LoggingTests.cs ================================================ using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Tests.Http.Diagnostics { using KubeClient.Http.Clients; using KubeClient.Http.Diagnostics; using KubeClient.Http.Formatters; using KubeClient.Http.Testability; using KubeClient.Http.Testability.MessageHandlers; /// /// Tests for the KubeClient.Http.Diagnostics logging facility. /// public sealed class LoggingTests { /// /// Create a new logging test suite. /// public LoggingTests() { } /// /// Verify that BeginRequest / EndRequest log entries are emitted for a successful HTTP GET request. /// [Fact(DisplayName = "Emit BeginRequest / EndRequest log entries for successful HTTP GET")] public async Task Post_Request_Emits_LogEntries() { string expectedResponseBody = JsonConvert.ToString("hello test"); var logEntries = new List(); TestLogger logger = new TestLogger(LogLevel.Debug); logger.LogEntries.Subscribe( logEntry => logEntries.Add(logEntry) ); ClientBuilder clientBuilder = new ClientBuilder() .WithLogging(logger, responseComponents: LogMessageComponents.Basic | LogMessageComponents.Body ); HttpClient client = clientBuilder.CreateClient("http://localhost:1234", new MockMessageHandler( request => request.CreateResponse(HttpStatusCode.OK, responseBody: expectedResponseBody, mediaType: WellKnownMediaTypes.Json ) )); using (client) using (HttpResponseMessage response = await client.GetAsync("/test")) { response.EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); Assert.Equal(expectedResponseBody, responseBody); } Assert.Equal(3, logEntries.Count); LogEntry beginRequestEntry = logEntries[0]; Assert.Equal(LogEventIds.BeginRequest, beginRequestEntry.EventId); Assert.Equal("Performing GET request to 'http://localhost:1234/test'.", beginRequestEntry.Message ); Assert.Equal("GET", beginRequestEntry.Properties["Method"] ); Assert.Equal(new Uri("http://localhost:1234/test"), beginRequestEntry.Properties["RequestUri"] ); LogEntry responseBodyEntry = logEntries[1]; Assert.Equal(LogEventIds.ResponseBody, responseBodyEntry.EventId); Assert.Equal($"Receive response body for GET request to 'http://localhost:1234/test' (OK):\n{expectedResponseBody}", responseBodyEntry.Message ); Assert.Equal("GET", responseBodyEntry.Properties["Method"] ); Assert.Equal(new Uri("http://localhost:1234/test"), responseBodyEntry.Properties["RequestUri"] ); Assert.Equal(expectedResponseBody, responseBodyEntry.Properties["Body"] ); Assert.Equal(HttpStatusCode.OK, responseBodyEntry.Properties["StatusCode"] ); LogEntry endRequestEntry = logEntries[2]; Assert.Equal(LogEventIds.EndRequest, endRequestEntry.EventId); Assert.Equal("Completed GET request to 'http://localhost:1234/test' (OK).", endRequestEntry.Message ); Assert.Equal("GET", endRequestEntry.Properties["Method"] ); Assert.Equal(new Uri("http://localhost:1234/test"), endRequestEntry.Properties["RequestUri"] ); Assert.Equal(HttpStatusCode.OK, endRequestEntry.Properties["StatusCode"] ); } /// /// Verify that can emit an informational log entry. /// [Fact(DisplayName = "TestLogger.LogInformation succeeds")] public void TestLogger_LogInformation_Success() { const string name = "World"; const LogLevel expectedLogLevel = LogLevel.Information; var logEntries = new List(); TestLogger logger = new TestLogger(LogLevel.Information); logger.LogEntries.Subscribe( logEntry => logEntries.Add(logEntry) ); logger.LogInformation("Hello, {Name}!", name); Assert.Single(logEntries, logEntry => { Assert.Equal(new EventId(), logEntry.EventId); Assert.Null(logEntry.EventId.Name); Assert.Equal(expectedLogLevel, logEntry.Level); Assert.Equal($"Hello, {name}!", logEntry.Message); Assert.True( logEntry.Properties.ContainsKey("Name") ); Assert.Equal(name, logEntry.Properties["Name"]); return true; }); } } } ================================================ FILE: test/KubeClient.Tests/Http/Diagnostics/TestLogger.cs ================================================ using Microsoft.Extensions.Logging; using System; using System.Reactive.Subjects; using System.Reactive.Disposables; using System.Collections.Immutable; using System.Collections.Generic; namespace KubeClient.Tests.Http.Diagnostics { /// /// A stub implementation of for use in tests. /// public sealed class TestLogger : ILogger, IDisposable { readonly Subject _logEntries = new Subject(); /// /// Create a new . /// /// /// The logger's minimum log level. /// public TestLogger(LogLevel logLevel) { LogLevel = logLevel; } /// /// Dispose of resources being used by the . /// public void Dispose() => _logEntries.Dispose(); /// /// The logger's minimum log level. /// public LogLevel LogLevel { get; } /// /// An observable sequence of log entries emitted by the . /// public IObservable LogEntries => _logEntries; /// /// Emit a log entry. /// /// /// The log entry's level. /// /// /// The log entry's associated event Id. /// /// /// The log entry to be written. Can be also an object. /// /// /// The exception (if any) related to the log entry. /// /// /// A function that creates a string log message from the and . /// public void Log(LogLevel level, EventId eventId, TState state, Exception exception, Func formatter) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); ImmutableDictionary properties = (state is IReadOnlyList> formattedLogValues) ? ImmutableDictionary.CreateRange(formattedLogValues) : ImmutableDictionary.Empty; _logEntries.OnNext(new LogEntry( level, eventId, formatter(state, exception), exception, state, properties )); } /// /// Check if the given is enabled. /// /// /// The level to be checked. /// /// /// true if enabled; otherwise, false. /// public bool IsEnabled(LogLevel logLevel) => logLevel >= LogLevel; /// /// Begin a logical operation scope. /// /// /// An identifier for the scope. /// /// /// An that ends the logical operation scope when disposed. /// public IDisposable BeginScope(TState state) => Disposable.Empty; } } ================================================ FILE: test/KubeClient.Tests/Http/Formatters/FormattedRequestTests.cs ================================================ using System; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Tests.Http.Formatters { using KubeClient.Http; using KubeClient.Http.Formatters; using KubeClient.Http.Testability.Xunit; /// /// Tests for HTTP requests using content formatters. /// public class FormattedRequestTests { /// /// The base URI for requests used by tests. /// static readonly Uri BaseUri = new Uri("http://localhost:1234/"); /// /// The base definition used by tests. /// static readonly HttpRequest BaseRequest = HttpRequest.Factory.Create(BaseUri); /// /// Verify that a request builder can build a request with an absolute and then relative template URI, then perform an HTTP GET request. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task Request_Get_RelativeTemplateUri() { HttpClient client = JsonTestClients.ExpectJson( new Uri(BaseUri, "foo/1234/bar?diddly=bonk"), HttpMethod.Get, responseBody: "Success!" ); using (client) { HttpRequest request = BaseRequest.WithRelativeUri("foo/{variable}/bar") .WithQueryParameter("diddly", "bonk") .WithTemplateParameter("variable", 1234) .WithTemplateParameter("diddly", "bonk") .UseJson().ExpectJson(); using (HttpResponseMessage response = await client.GetAsync(request)) { Assert.True(response.IsSuccessStatusCode); Assert.NotNull(response.Content); Assert.Equal(WellKnownMediaTypes.Json, response.Content.Headers.ContentType.MediaType); string responseBody = await response.ReadContentAsAsync(); Assert.Equal("Success!", responseBody); } } } /// /// Verify that a request builder can build a request with an absolute and then relative URI, expecting a JSON response, and then perform an HTTP POST request. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task Request_Post_RelativeUri_ExpectJson() { HttpClient client = JsonTestClients.ExpectJson( new Uri(BaseUri, "foo/bar"), HttpMethod.Post, responseBody: "Success!", assertion: async request => { MessageAssert.AcceptsMediaType(request, WellKnownMediaTypes.Json); await MessageAssert.BodyIsAsync(request, "{\"Foo\":\"Bar\",\"Baz\":1234}" ); } ); using (client) { HttpRequest request = BaseRequest.WithRelativeUri("foo/bar") .UseJson().ExpectJson(); HttpResponseMessage response = await client.PostAsJsonAsync(request, postBody: new { Foo = "Bar", Baz = 1234 } ); using (response) { Assert.True(response.IsSuccessStatusCode); Assert.NotNull(response.Content?.Headers?.ContentType); Assert.Equal(WellKnownMediaTypes.Json, response.Content.Headers.ContentType.MediaType); string responseBody = await response.ReadContentAsAsync(); Assert.Equal("Success!", responseBody); } } } /// /// Verify that a request builder can build a request with an absolute and then relative URI, and then perform a JSON-formatted HTTP POST request. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task Request_PostAsJson_RelativeUri() { HttpClient client = JsonTestClients.ExpectJson( new Uri(BaseUri, "foo/bar"), HttpMethod.Post, responseBody: 1234, assertion: async request => { MessageAssert.AcceptsMediaType(request, WellKnownMediaTypes.Json); await MessageAssert.BodyIsAsync(request, "\"1234\""); } ); using (client) { HttpRequest request = BaseRequest.WithRelativeUri("foo/bar") .UseJson().ExpectJson(); int responseBody = await client.PostAsJsonAsync(request, postBody: 1234.ToString() ) .ReadContentAsAsync(); Assert.Equal(1234, responseBody); } } } } ================================================ FILE: test/KubeClient.Tests/Http/Formatters/JsonFormattedRequestTests.cs ================================================ using System.Net.Http; using Xunit; namespace KubeClient.Tests.Http.Formatters { using KubeClient.Http; using KubeClient.Http.Formatters; using KubeClient.Http.Testability.Xunit; /// /// Tests for JSON-formatted HTTP requests. /// public class JsonFormattedRequestTests { /// /// The base request used for tests. /// static readonly HttpRequest BaseRequest = HttpRequest.Factory.Create("http://localhost/"); /// /// The base typed request used for tests. /// static readonly HttpRequest TypedBaseRequest = HttpRequest.Factory.Create("http://localhost/"); /// /// Verify that the ExpectJson extension method for adds the "application/json" JSON media type to the request's Accept header. /// [Fact] public void Request_ExpectJson_Sets_AcceptHeader() { RequestAssert.Message(BaseRequest.ExpectJson(), HttpMethod.Get, requestMessage => { MessageAssert.AcceptsMediaType(requestMessage, WellKnownMediaTypes.Json); }); } /// /// Verify that the ExpectJson extension method for adds the "application/json" JSON media type to the request's Accept header. /// [Fact] public void TypedRequest_ExpectJson_Sets_AcceptHeader() { RequestAssert.Message(TypedBaseRequest.ExpectJson(), HttpMethod.Get, requestMessage => { MessageAssert.AcceptsMediaType(requestMessage, WellKnownMediaTypes.Json); }); } } } ================================================ FILE: test/KubeClient.Tests/Http/Formatters/JsonTestClients.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; namespace KubeClient.Tests.Http.Formatters { using KubeClient.Http.Formatters; using KubeClient.Http.Formatters.Json; using KubeClient.Http.Testability.Xunit; /// /// Factory methods for JSON-formatted mocked s used by tests. /// public static class JsonTestClients { /// /// Create an that always responds to requests with the specified status code. /// /// /// The response body type. /// /// /// The HTTP status code. /// /// /// The response body (will be serialised as JSON). /// /// /// The configured . /// public static HttpClient RespondWith(HttpStatusCode statusCode, TBody body) { return TestClients.RespondWith( request => request.CreateResponse(statusCode, body, WellKnownMediaTypes.Json, new NewtonsoftJsonFormatter()) ); } /// /// Create an that performs assertions on an incoming request message and returns a predefined (JSON-formatted) response. /// /// /// The type to be sent as a response body. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The instance to be serialised into the outgoing response message. /// /// /// The configured . /// public static HttpClient ExpectJson(Uri expectedRequestUri, HttpMethod expectedRequestMethod, TResponseBody responseBody) { return ExpectJson(expectedRequestUri, expectedRequestMethod, responseBody, assertion: null); } /// /// Create an that performs assertions on an incoming request message and returns a predefined (JSON-formatted) response. /// /// /// The type to be sent as a response body. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The instance to be serialised into the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectJson(Uri expectedRequestUri, HttpMethod expectedRequestMethod, TResponseBody responseBody, Action assertion) { return ExpectJson(expectedRequestUri, expectedRequestMethod, HttpStatusCode.OK, responseBody, assertion); } /// /// Create an that performs assertions on an incoming request message and returns a predefined (JSON-formatted) response. /// /// /// The type to be sent as a response body. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// The instance to be serialised into the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectJson(Uri expectedRequestUri, HttpMethod expectedRequestMethod, HttpStatusCode responseStatusCode, TResponseBody responseBody, Action assertion) { return Expect(expectedRequestUri, expectedRequestMethod, responseStatusCode, responseBody, WellKnownMediaTypes.Json, new NewtonsoftJsonFormatter(), assertion); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// The type to be sent as a response body. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// The instance to be serialised into the outgoing response message. /// /// /// The media type for the ougoing response message body. /// /// /// The used to serialise the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient Expect(Uri expectedRequestUri, HttpMethod expectedRequestMethod, HttpStatusCode responseStatusCode, TResponseBody responseBody, string responseMediaType, IOutputFormatter responseFormatter, Action assertion) { if (expectedRequestUri == null) throw new ArgumentNullException(nameof(expectedRequestUri)); if (expectedRequestMethod == null) throw new ArgumentNullException(nameof(expectedRequestMethod)); if (String.IsNullOrWhiteSpace(responseMediaType)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'responseMediaType'.", nameof(responseMediaType)); if (responseFormatter == null) throw new ArgumentNullException(nameof(responseFormatter)); return TestClients.RespondWith(requestMessage => { Xunit.Assert.NotNull(requestMessage); Xunit.Assert.Equal(expectedRequestMethod, requestMessage.Method); Xunit.Assert.Equal(expectedRequestUri, requestMessage.RequestUri); assertion?.Invoke(requestMessage); return requestMessage.CreateResponse( responseStatusCode, responseBody, responseMediaType, new NewtonsoftJsonFormatter() ); }); } /// /// Create an that performs assertions on an incoming request message and returns a predefined (JSON-formatted) response. /// /// /// The type to be sent as a response body. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The instance to be serialised into the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectJson(Uri expectedRequestUri, HttpMethod expectedRequestMethod, TResponseBody responseBody, Func asyncAssertion) { return ExpectJson(expectedRequestUri, expectedRequestMethod, HttpStatusCode.OK, responseBody, asyncAssertion); } /// /// Create an that performs assertions on an incoming request message and returns a predefined (JSON-formatted) response. /// /// /// The type to be sent as a response body. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// The instance to be serialised into the outgoing response message. /// /// /// A delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient ExpectJson(Uri expectedRequestUri, HttpMethod expectedRequestMethod, HttpStatusCode responseStatusCode, TResponseBody responseBody, Func asyncAssertion) { return Expect(expectedRequestUri, expectedRequestMethod, responseStatusCode, responseBody, WellKnownMediaTypes.Json, new NewtonsoftJsonFormatter(), asyncAssertion); } /// /// Create an that performs assertions on an incoming request message and returns a predefined response. /// /// /// The type to be sent as a response body. /// /// /// The expected URI for the incoming request message. /// /// /// The expected HTTP method (e.g. GET / POST / PUT) for the incoming request message. /// /// /// The HTTP status code for the outgoing response message. /// /// /// The instance to be serialised into the outgoing response message. /// /// /// The media type for the ougoing response message body. /// /// /// The used to serialise the outgoing response message. /// /// /// An asynchronous delegate that makes assertions about the incoming request message. /// /// /// The configured . /// public static HttpClient Expect(Uri expectedRequestUri, HttpMethod expectedRequestMethod, HttpStatusCode responseStatusCode, TResponseBody responseBody, string responseMediaType, IOutputFormatter responseFormatter, Func asyncAssertion) { if (expectedRequestUri == null) throw new ArgumentNullException(nameof(expectedRequestUri)); if (expectedRequestMethod == null) throw new ArgumentNullException(nameof(expectedRequestMethod)); if (String.IsNullOrWhiteSpace(responseMediaType)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'responseMediaType'.", nameof(responseMediaType)); if (responseFormatter == null) throw new ArgumentNullException(nameof(responseFormatter)); return TestClients.AsyncRespondWith(async requestMessage => { Xunit.Assert.NotNull(requestMessage); Xunit.Assert.Equal(expectedRequestMethod, requestMessage.Method); Xunit.Assert.Equal(expectedRequestUri, requestMessage.RequestUri); Task assertionTask = asyncAssertion?.Invoke(requestMessage); if (assertionTask != null) await assertionTask; return requestMessage.CreateResponse( responseStatusCode, responseBody, responseMediaType, new NewtonsoftJsonFormatter() ); }); } } } ================================================ FILE: test/KubeClient.Tests/Http/Formatters/MessageExtensions.cs ================================================ using System; using System.Net; using System.Net.Http; namespace KubeClient.Tests.Http.Formatters { using KubeClient.Http.Formatters; using KubeClient.Http.Testability; /// /// Formatter-related extension methods for / . /// public static class MessageExtensions { /// /// Create a response message. /// /// /// The type of object that represents the response body. /// /// /// The response message. /// /// /// The response status code. /// /// /// The response body. /// /// /// The target media type for the response body. /// /// /// The content formatter that will serialise the response body. /// /// /// The configured response message. /// public static HttpResponseMessage CreateResponse(this HttpRequestMessage request, HttpStatusCode statusCode, TBody body, string mediaType, IOutputFormatter formatter) { if (request == null) throw new ArgumentNullException(nameof(request)); if (String.IsNullOrWhiteSpace(mediaType)) throw new ArgumentException("Argument cannot be null, empty, or composed entirely of whitespace: 'mediaType'.", nameof(mediaType)); HttpResponseMessage response = request.CreateResponse(statusCode); try { response.Content = new FormattedObjectContent( formatter, typeof(TBody), body, mediaType ); } catch { using (response) { throw; } } return response; } } } ================================================ FILE: test/KubeClient.Tests/Http/Formatters/ReadResponseTests.cs ================================================ using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Tests.Http.Formatters { using KubeClient.Http; using KubeClient.Http.Formatters.Json; /// /// Tests for reading responses from invoked messages. /// public class ReadResponseTests { /// /// The default request used for tests. /// static readonly HttpRequest DefaultRequest = HttpRequest.Factory.Create("http://localhost/"); /// /// Create a new response-read test suite. /// public ReadResponseTests() { } /// /// Verify that the body of an 's response (with a status code that indicates success) can be read using the JSON formatter. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task Response_Read_Json_Success() { TestBody expectedBody = new TestBody { StringProperty = "This is a test", IntProperty = 123 }; using (HttpClient client = JsonTestClients.RespondWith(HttpStatusCode.OK, expectedBody)) { TestBody actualBody = await client .GetAsync(DefaultRequest) .ReadContentAsAsync(new NewtonsoftJsonFormatter()); Assert.NotNull(actualBody); Assert.NotSame(expectedBody, actualBody); Assert.Equal(expectedBody.StringProperty, actualBody.StringProperty); Assert.Equal(expectedBody.IntProperty, actualBody.IntProperty); } } /// /// Verify that the body of an 's response (with a status code that has been declared as indicating success) can be read using the JSON formatter. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task Response_Read_Json_TreatAsSuccess() { TestBody expectedBody = new TestBody { StringProperty = "This is a test", IntProperty = 123 }; using (HttpClient client = JsonTestClients.RespondWith(HttpStatusCode.BadRequest, expectedBody)) { TestBody actualBody = await client .GetAsync(DefaultRequest) .ReadContentAsAsync(new NewtonsoftJsonFormatter(), HttpStatusCode.OK, HttpStatusCode.BadRequest); Assert.NotNull(actualBody); Assert.NotSame(expectedBody, actualBody); Assert.Equal(expectedBody.StringProperty, actualBody.StringProperty); Assert.Equal(expectedBody.IntProperty, actualBody.IntProperty); } } /// /// Verify that the body of an 's response (with a status code that indicates failure) can be transformed by the onFailureResponse handler into a valid response body. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task Response_Read_Json_Failure_Transformed() { TestBody expectedBody = new TestBody { StringProperty = "This is a failure response", IntProperty = 456 }; TestBody responseBody = new TestBody { StringProperty = "This is a test", IntProperty = 123 }; using (HttpClient client = JsonTestClients.RespondWith(HttpStatusCode.BadRequest, responseBody)) { TestBody actualBody = await client .GetAsync(DefaultRequest) .ReadContentAsAsync(new NewtonsoftJsonFormatter(), onFailureResponse: () => new TestBody { StringProperty = expectedBody.StringProperty, IntProperty = expectedBody.IntProperty } ); Assert.NotNull(actualBody); Assert.NotSame(expectedBody, actualBody); Assert.Equal(expectedBody.StringProperty, actualBody.StringProperty); Assert.Equal(expectedBody.IntProperty, actualBody.IntProperty); } } /// /// A simple data-type to be deserialised from the response. /// /// /// Must be public to support XML serialisation (or have the DataContract attribute applied to it). /// public class TestBody { /// /// A string property. /// public string StringProperty { get; set; } /// /// An integer property. /// public int IntProperty { get; set; } } } } ================================================ FILE: test/KubeClient.Tests/Http/TypedClientBuilderTests.cs ================================================ using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; using Xunit.Sdk; namespace KubeClient.Tests.Http { using KubeClient.Http; using KubeClient.Http.Clients; using KubeClient.Http.Testability; using KubeClient.Http.Testability.MessageHandlers; using KubeClient.Http.Testability.Xunit; /// /// Unit-tests for . /// public class TypedClientBuilderTests { /// /// The base URI used for requests in tests. /// static readonly Uri BaseUri = new Uri("http://localhost"); /// /// The default path used for requests in tests. /// static readonly string TestRequestPath = "/foo/bar"; /// /// The default URI used for requests in tests. /// static readonly Uri TestRequestUri = new Uri(BaseUri, TestRequestPath); /// /// The default request used for tests. /// static readonly HttpRequest TestRequest = HttpRequest.Create(TestRequestPath); /// /// An used as the context for handler creation. /// readonly TestBuilderContext _testBuilderContext = new TestBuilderContext(); /// /// Verify that a , configured with the default message pipeline terminus, can build an with a custom message pipeline terminus. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task BuilderWithDefaultTerminus_Can_Build_Client_WithCustomTerminus() { using MockMessageHandler testHandler = TestHandlers.RespondWith(request => { MessageAssert.HasRequestUri(request, TestRequestUri); return request.CreateResponse(HttpStatusCode.Ambiguous); }); ClientBuilder builder = new ClientBuilder(); using HttpClient client = builder.CreateClient(_testBuilderContext, BaseUri, messagePipelineTerminus: testHandler); using HttpResponseMessage response = await client.GetAsync(TestRequest); Assert.Equal(HttpStatusCode.Ambiguous, response.StatusCode); } /// /// Verify that a , configured with a custom message pipeline terminus, can build an with that message pipeline terminus. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task BuilderWithCustomTerminus_Can_Build_Client() { using MockMessageHandler testHandler = TestHandlers.RespondWith(request => { MessageAssert.HasRequestUri(request, TestRequestUri); return request.CreateResponse(HttpStatusCode.Ambiguous); }); ClientBuilder builder = new ClientBuilder() .WithMessagePipelineTerminus(context => { Assert.Same(_testBuilderContext, context); return testHandler; }); using HttpClient client = builder.CreateClient(_testBuilderContext, BaseUri); using HttpResponseMessage response = await client.GetAsync(TestRequest); Assert.Equal(HttpStatusCode.Ambiguous, response.StatusCode); } /// /// Verify that a , configured with a custom message pipeline terminus, can build an with a different message pipeline terminus. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task BuilderWithCustomTerminus_Can_Build_Client_WithCustomTerminus() { using MockMessageHandler testHandler1 = TestHandlers.RespondWith(request => { throw EqualException.ForMismatchedValues( expected: "testHandler2", actual: "testHandler1", banner: "Client was created with the wrong message pipeline terminus." ); }); using MockMessageHandler testHandler2 = TestHandlers.RespondWith(request => { MessageAssert.HasRequestUri(request, TestRequestUri); return request.CreateResponse(HttpStatusCode.SeeOther); }); ClientBuilder builder = new ClientBuilder() .WithMessagePipelineTerminus(context => { Assert.Same(_testBuilderContext, context); return testHandler1; }); using HttpClient client = builder.CreateClient(_testBuilderContext, BaseUri, messagePipelineTerminus: testHandler2); using HttpResponseMessage response = await client.GetAsync(TestRequest); Assert.Equal(HttpStatusCode.SeeOther, response.StatusCode); } /// /// Dummy type to represent context for . /// class TestBuilderContext { /// /// Create a new . /// public TestBuilderContext() { } } } } ================================================ FILE: test/KubeClient.Tests/Http/TypedRequestTests.cs ================================================ using System; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Tests.Http { using KubeClient.Http; using KubeClient.Http.Testability.Xunit; /// /// Unit-tests for that use a context for resolving deferred parameters. /// public class TypedRequestTests { /// /// Verify that a request can build and then invoke request with an absolute and then relative template URI (with query parameters) with deferred values that come from a supplied context value. /// /// /// A representing asynchronous test execution. /// [Fact] public async Task Request_RelativeTemplateUriWithQuery_DeferredValues_FromContext_Get() { Uri baseUri = new Uri("http://localhost:1234/"); TestParameterContext testParameterContext = new TestParameterContext(); Uri expectedUri = null; HttpClient client = TestClients.Expect(requestMessage => { Assert.Equal(expectedUri, requestMessage.RequestUri); }); using (client) { HttpRequest requestBuilder = HttpRequest.Factory.Create(baseUri) .WithRelativeUri("{action}/{id}?flag={flag?}") .WithTemplateParameter("action", context => context.Action) .WithTemplateParameter("id", context => context.Id) .WithTemplateParameter("flag", context => context.Flag); testParameterContext.Action = "foo"; testParameterContext.Id = 1; testParameterContext.Flag = true; expectedUri = new Uri(baseUri, "foo/1?flag=True"); await client.GetAsync(requestBuilder, testParameterContext); testParameterContext.Flag = false; expectedUri = new Uri(baseUri, "foo/1?flag=False"); await client.GetAsync(requestBuilder, testParameterContext); testParameterContext.Action = "diddly"; testParameterContext.Id = -17; testParameterContext.Flag = null; expectedUri = new Uri(baseUri, "diddly/-17"); await client.GetAsync(requestBuilder, testParameterContext); } } /// /// Verify that a request can build a request with an absolute and then relative template URI (with query parameters) with deferred values that come from a supplied context value. /// [Fact] public void Request_RelativeTemplateUriWithQuery_DeferredValues_FromContext_Build() { Uri baseUri = new Uri("http://localhost:1234/"); HttpRequest requestBuilder = HttpRequest.Factory.Create(baseUri) .WithRelativeUri("{action}/{id}?flag={flag?}") .WithTemplateParameter("action", context => context.Action) .WithTemplateParameter("id", context => context.Id) .WithTemplateParameter("flag", context => context.Flag); TestParameterContext testParameterContext = new TestParameterContext { Action = "foo", Id = 1, Flag = true }; using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext)) { Assert.Equal( new Uri(baseUri, "foo/1?flag=True"), requestMessage.RequestUri ); } testParameterContext.Flag = false; using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext)) { Assert.Equal( new Uri(baseUri, "foo/1?flag=False"), requestMessage.RequestUri ); } testParameterContext.Action = "diddly"; testParameterContext.Id = -17; testParameterContext.Flag = null; using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext)) { Assert.Equal( new Uri(baseUri, "diddly/-17"), requestMessage.RequestUri ); } } /// /// Verify that a request can build a request with an absolute and then relative template URI (with query parameters) with deferred values that come from the request's default (intrinsic) context. /// [Fact] public void Request_RelativeTemplateUriWithQuery_DeferredValues_FromDefaultContext_Build() { Uri baseUri = new Uri("http://localhost:1234/"); TestParameterContext testParameterContext = new TestParameterContext { Action = "foo", Id = 1, Flag = true }; HttpRequest requestBuilder = HttpRequest.Factory.Create(baseUri) .WithRelativeUri("{action}/{id}?flag={flag?}") .WithTemplateParameter("action", context => context.Action) .WithTemplateParameter("id", context => context.Id) .WithTemplateParameter("flag", context => context.Flag); using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext)) { Assert.Equal( new Uri(baseUri, "foo/1?flag=True"), requestMessage.RequestUri ); } testParameterContext.Flag = false; using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext)) { Assert.Equal( new Uri(baseUri, "foo/1?flag=False"), requestMessage.RequestUri ); } testParameterContext.Action = "diddly"; testParameterContext.Id = -17; testParameterContext.Flag = null; using (HttpRequestMessage requestMessage = requestBuilder.BuildRequestMessage(HttpMethod.Get, testParameterContext)) { Assert.Equal( new Uri(baseUri, "diddly/-17"), requestMessage.RequestUri ); } } /// /// A parameter-resolution context class used for tests. /// class TestParameterContext { /// /// The "Action" parameter. /// public string Action { get; set; } /// /// The "Id" parameter. /// public int Id { get; set; } /// /// The "Flag" parameter. /// public bool? Flag { get; set; } } } } ================================================ FILE: test/KubeClient.Tests/Http/UnitTestBase.cs ================================================ namespace KubeClient.Tests.Http { /// /// Base class for unit-test suites. /// public abstract class UnitTestBase { /// /// Initialise . /// protected UnitTestBase() { } } } ================================================ FILE: test/KubeClient.Tests/Http/UriTemplateTests.cs ================================================ using System; using System.Collections.Generic; using Xunit; namespace KubeClient.Tests.Http { using KubeClient.Http; using KubeClient.Http.Templates; /// /// Unit-tests for URI templating functionality. /// public sealed class UriTemplateTests : UnitTestBase { /// /// Create a new URI templating unit-test suite. /// public UriTemplateTests() { } /// /// Verify that template segments can be parsed from a URI. /// [Fact] public void Can_Parse_TemplateSegments_From_Uri() { IReadOnlyList segments = TemplateSegment.Parse( "api/{controller}/{action}/{id?}/properties" ); Assert.Equal(6, segments.Count); Assert.IsAssignableFrom(segments[0]); LiteralUriSegment apiSegment = Assert.IsAssignableFrom(segments[1]); Assert.Equal("api", apiSegment.Value); ParameterizedUriSegment controllerSegment = Assert.IsAssignableFrom(segments[2]); Assert.True(controllerSegment.IsDirectory); Assert.Equal("controller", controllerSegment.TemplateParameterName); Assert.False(controllerSegment.IsOptional); ParameterizedUriSegment actionSegment = Assert.IsAssignableFrom(segments[3]); Assert.True(actionSegment.IsDirectory); Assert.Equal("action", actionSegment.TemplateParameterName); Assert.False(actionSegment.IsOptional); ParameterizedUriSegment idSegment = Assert.IsAssignableFrom(segments[4]); Assert.True(idSegment.IsDirectory); Assert.Equal("id", idSegment.TemplateParameterName); Assert.True(idSegment.IsOptional); LiteralUriSegment propertiesSegment = Assert.IsAssignableFrom(segments[5]); Assert.False(propertiesSegment.IsDirectory); Assert.Equal("properties", propertiesSegment.Value); } /// /// Verify that template segments can be parsed from a URI with a query component. /// [Fact] public void Can_Parse_TemplateSegments_From_Uri_WithQuery() { IReadOnlyList segments = TemplateSegment.Parse( "api/{controller}/{action}/{id?}/properties?propertyIds={propertyGroupIds}&diddly={dee?}&foo=bar" ); Assert.Equal(9, segments.Count); Assert.IsAssignableFrom(segments[0]); LiteralUriSegment apiSegment = Assert.IsAssignableFrom(segments[1]); Assert.Equal("api", apiSegment.Value); ParameterizedUriSegment controllerSegment = Assert.IsAssignableFrom(segments[2]); Assert.True(controllerSegment.IsDirectory); Assert.Equal("controller", controllerSegment.TemplateParameterName); Assert.False(controllerSegment.IsOptional); ParameterizedUriSegment actionSegment = Assert.IsAssignableFrom(segments[3]); Assert.True(actionSegment.IsDirectory); Assert.Equal("action", actionSegment.TemplateParameterName); Assert.False(actionSegment.IsOptional); ParameterizedUriSegment idSegment = Assert.IsAssignableFrom(segments[4]); Assert.True(idSegment.IsDirectory); Assert.Equal("id", idSegment.TemplateParameterName); Assert.True(idSegment.IsOptional); LiteralUriSegment propertiesSegment = Assert.IsAssignableFrom(segments[5]); Assert.False(propertiesSegment.IsDirectory); Assert.Equal("properties", propertiesSegment.Value); ParameterizedQuerySegment propertyIdsSegment = Assert.IsAssignableFrom(segments[6]); Assert.Equal("propertyIds", propertyIdsSegment.QueryParameterName); Assert.Equal("propertyGroupIds", propertyIdsSegment.TemplateParameterName); Assert.False(propertyIdsSegment.IsOptional); ParameterizedQuerySegment diddlySegment = Assert.IsAssignableFrom(segments[7]); Assert.Equal("diddly", diddlySegment.QueryParameterName); Assert.Equal("dee", diddlySegment.TemplateParameterName); Assert.True(diddlySegment.IsOptional); LiteralQuerySegment fooSegment = Assert.IsAssignableFrom(segments[8]); Assert.Equal("foo", fooSegment.QueryParameterName); Assert.Equal("bar", fooSegment.QueryParameterValue); } /// /// Verify that template with a query component can be populated. /// [Fact] public void Can_Populate_Template_WithQuery() { UriTemplate template = new UriTemplate( "api/{controller}/{action}/{id?}/properties?propertyIds={propertyGroupIds}&diddly={dee?}&foo=bar" ); Uri generatedUri = template.Populate( baseUri: new Uri("http://test-host/"), templateParameters: new Dictionary { { "controller", "organizations" }, { "action", "distinct" }, { "propertyGroupIds", "System.OrganizationCommercial;EnterpriseMobility.OrganizationAirwatch" } } ); Assert.Equal( "http://test-host/api/organizations/distinct/properties?propertyIds=System.OrganizationCommercial%3BEnterpriseMobility.OrganizationAirwatch&foo=bar", generatedUri.AbsoluteUri ); } } } ================================================ FILE: test/KubeClient.Tests/JsonSerializationTests.cs ================================================ using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.IO; using System.Linq; using System.Reflection; using System.Text; using Xunit; using Xunit.Abstractions; namespace KubeClient.Tests { using Models; using Models.Converters; using ResourceClients; using TestCommon; /// /// Tests for JSON serialisation of various Kubernetes models. /// public class JsonSerializationTests : TestBase { /// /// Create a new Kubernetes model serialisation test suite. /// /// /// Output for the current test. /// public JsonSerializationTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that KubeObjectV1 correctly populates Kind and ApiVersion when constructed. /// [InlineData(typeof(PodV1), JTokenType.Object)] [InlineData(typeof(PodListV1), JTokenType.Object)] [InlineData(typeof(DeploymentListV1Beta1), JTokenType.Object)] [InlineData(typeof(DeploymentV1Beta1), JTokenType.Object)] [Theory(DisplayName = "Serialised KubeObjectV1 and inheritors have correct root token type ")] public void KubeObject_JTokenType(Type kubeObjectType, JTokenType expectedTokenType) { KubeObjectV1 kubeObject = (KubeObjectV1)Activator.CreateInstance(kubeObjectType); JToken rootToken; using (JTokenWriter writer = new JTokenWriter()) { new JsonSerializer().Serialize(writer, kubeObject); writer.Flush(); rootToken = writer.Token; } Assert.NotNull(rootToken); Assert.Equal(rootToken.Type, expectedTokenType); } /// /// Verify that serialised models correctly include or omit required/optional empty collection properties. /// [InlineData(typeof(ObjectMetaV1), nameof(ObjectMetaV1.Annotations), false)] [InlineData(typeof(ObjectMetaV1), nameof(ObjectMetaV1.Labels), false)] [InlineData(typeof(PodSpecV1), nameof(PodSpecV1.Containers), true)] [InlineData(typeof(PodSpecV1), nameof(PodSpecV1.HostAliases), false)] [Theory(DisplayName = "Serialised models correctly include or omit required/optional empty collection properties ")] public void KubeObjectV1_Empty_CollectionProperty(Type modelType, string targetPropertyName, bool shouldBeSerialized) { object model = Activator.CreateInstance(modelType); JObject rootObject; using (JTokenWriter writer = new JTokenWriter()) { new JsonSerializer().Serialize(writer, model); writer.Flush(); rootObject = (JObject)writer.Token; } string expectedPropertyName = GetJsonPropertyName(modelType, targetPropertyName); string[] actualPropertyNames = rootObject.Properties().Select(property => property.Name).ToArray(); if (shouldBeSerialized) Assert.Contains(expectedPropertyName, actualPropertyNames); else Assert.DoesNotContain(expectedPropertyName, actualPropertyNames); } /// /// Verify that the casing of keys in are preserved. /// [Theory] [InlineData("abc")] [InlineData("Abc")] [InlineData("ABC")] public void SecretV1_Data_PreserveKeyCase(string key) { var model = new SecretV1 { Data = { [key] = key } }; JObject rootObject; using ( JTokenWriter writer = new JTokenWriter() ) { JsonSerializer.Create(KubeResourceClient.SerializerSettings).Serialize(writer, model); writer.Flush(); rootObject = (JObject) writer.Token; } Log.LogInformation("Serialized:\n{JSON:l}", rootObject.ToString(Formatting.Indented) ); JObject data = rootObject.Value("data"); Assert.NotNull(data); Assert.Equal(key, data.Value(key) ); } /// /// Verify that the casing of keys in are preserved. /// [Theory] [InlineData("abc")] [InlineData("Abc")] [InlineData("ABC")] public void ConfigMapV1_Data_PreserveKeyCase(string key) { var model = new ConfigMapV1 { Data = { [key] = key } }; JObject rootObject; using ( JTokenWriter writer = new JTokenWriter() ) { JsonSerializer.Create(KubeResourceClient.SerializerSettings).Serialize(writer, model); writer.Flush(); rootObject = (JObject) writer.Token; } Log.LogInformation("Serialized:\n{JSON:l}", rootObject.ToString(Formatting.Indented) ); JObject data = rootObject.Value("data"); Assert.NotNull(data); Assert.Equal(key, data.Value(key) ); } /// /// Verify that an with a null value deserialises correctly. /// [Fact] public void Int32OrStringWithNullDeserializesCorrectly() { string json = "{ \"path\": \"/healthz\", \"port\": null, \"scheme\": \"HTTP\" }"; HTTPGetActionV1 httpGetAction = JsonConvert.DeserializeObject(json); Assert.NotNull(httpGetAction); Assert.Equal("/healthz", httpGetAction.Path); Assert.Null(httpGetAction.Port); Assert.Equal("HTTP", httpGetAction.Scheme); } /// /// Verify that an with an integer value deserialises correctly. /// [Fact] public void Int32OrStringWithIntegerDeserializesCorrectly() { string json = "{ \"path\": \"/healthz\", \"port\": 10254, \"scheme\": \"HTTP\" }"; HTTPGetActionV1 httpGetAction = JsonConvert.DeserializeObject(json); Assert.NotNull(httpGetAction); Assert.Equal("/healthz", httpGetAction.Path); Assert.True(httpGetAction.Port.IsInt32); Assert.False(httpGetAction.Port.IsString); Assert.Equal(10254, httpGetAction.Port.Int32Value); Assert.Equal("HTTP", httpGetAction.Scheme); } /// /// Verify that an with a string value deserialises correctly. /// [Fact] public void Int32OrStringWithStringDeserializesCorrectly() { string json = "{ \"path\": \"/healthz\", \"port\": \"http\", \"scheme\": \"HTTP\" }"; HTTPGetActionV1 httpGetAction = JsonConvert.DeserializeObject(json); Assert.NotNull(httpGetAction); Assert.False(httpGetAction.Port.IsInt32); Assert.True(httpGetAction.Port.IsString); Assert.Equal("http", httpGetAction.Port.StringValue); Assert.Equal("HTTP", httpGetAction.Scheme); } /// /// Verify that an can be correctly serialised to JSON (regardless of whether it's a number or string). /// [InlineData(null, null)] [InlineData(567, 567)] [InlineData("567", 567)] [InlineData("567tcp", "567tcp")] [InlineData("567 tcp", "567 tcp")] [Theory(DisplayName = "Can serialise Int32OrStringV1 to JSON ")] public void Can_Serialize_Int32OrStringV1_Null(object rawValue, object renderedValue) { Int32OrStringV1 int32OrString; if (rawValue is string stringValue) int32OrString = stringValue; else if (rawValue is int intValue) int32OrString = intValue; else if (rawValue == null) int32OrString = null; else throw new InvalidOperationException($"Unexpected value type: '{rawValue.GetType().FullName}'."); var model = new TestModel { Number = 123, Text = "hello", Mixed = int32OrString }; JObject rootObject; using (JTokenWriter writer = new JTokenWriter()) { JsonSerializer .Create(new JsonSerializerSettings { Converters = { new Int32OrStringV1Converter() } }) .Serialize(writer, model); writer.Flush(); rootObject = (JObject)writer.Token; } string propertyName = GetJsonPropertyName(typeof(TestModel), "Mixed"); var propertyValue = rootObject.Property(propertyName)?.Value as JValue; Assert.NotNull(propertyValue); Assert.Equal(renderedValue, propertyValue.Value); } /// /// Verify that an with a null value deserialises correctly. /// [Fact] public void MicroTimeWithNullDeserializesCorrectly() { string json = "null"; MicroTimeV1? microTime = JsonConvert.DeserializeObject(json); Assert.Null(microTime); } /// /// Verify that an with an integer value deserialises correctly. /// [Fact] public void MicroTimeWithStringDeserializesCorrectly() { string json = "\"2020-09-11T14:59:24.491964Z\""; MicroTimeV1 microTime = JsonConvert.DeserializeObject(json); Assert.Equal(2020, microTime.Value.Year); Assert.Equal(9, microTime.Value.Month); Assert.Equal(11, microTime.Value.Day); Assert.Equal(14, microTime.Value.Hour); Assert.Equal(59, microTime.Value.Minute); Assert.Equal(24, microTime.Value.Second); // TODO: Validate microsecond-level precision. } /// /// Verify that a can be correctly deserialised from JSON. /// /// The type of to be deserialised via . /// The expected event type. [InlineData(typeof(PodV1), ResourceEventType.Added)] [InlineData(typeof(PodV1), ResourceEventType.Deleted)] [InlineData(typeof(PodV1), ResourceEventType.Modified)] [InlineData(null, ResourceEventType.Error)] [Theory(DisplayName = "Can deserialise ResourceEventV1 ")] public void Can_Deserialize_ResourceEventV1(Type resourceType, ResourceEventType expectedEventType) { JsonSerializerSettings serializerSettings = KubeResourceClient.SerializerSettings; serializerSettings.Formatting = Formatting.Indented; JsonSerializer serializer = JsonSerializer.Create(serializerSettings); ResourceEventV1 expectedResourceEvent = new ResourceEventV1 { EventType = expectedEventType, Resource = resourceType != null ? (KubeResourceV1)Activator.CreateInstance(resourceType) : null }; StringBuilder buffer = new StringBuilder(); using (StringWriter bufferWriter = new StringWriter(buffer)) using (JsonWriter jsonWriter = new JsonTextWriter(bufferWriter)) { serializer.Serialize(jsonWriter, expectedResourceEvent); jsonWriter.Flush(); } Log.LogInformation("Serialised event JSON:\n{EventJson:l}", buffer.ToString()); serializerSettings.Converters.Add( new ResourceEventV1Converter(typeof(KubeResourceV1).Assembly) ); serializer = JsonSerializer.Create(serializerSettings); ResourceEventV1 actualResourceEvent; using (StringReader bufferReader = new StringReader(buffer.ToString())) using (JsonReader jsonReader = new JsonTextReader(bufferReader)) { actualResourceEvent = serializer.Deserialize>(jsonReader); } Assert.NotNull(actualResourceEvent); Assert.Equal(expectedResourceEvent.EventType, actualResourceEvent.EventType); if (expectedResourceEvent.Resource != null) { Assert.NotNull(actualResourceEvent.Resource); Assert.IsType(expectedResourceEvent.Resource.GetType(), actualResourceEvent.Resource); } else Assert.Null(actualResourceEvent.Resource); } /// /// Get the JSON property name corresponding to the specified model property. /// /// /// The model . /// /// /// The name of the target property. /// /// /// The JSON property name. /// static string GetJsonPropertyName(Type modelType, string propertyName) { if (modelType == null) throw new ArgumentNullException(nameof(modelType)); if (String.IsNullOrWhiteSpace(propertyName)) throw new ArgumentException("Argument cannot be null, empty, or entirely composed of whitespace: 'propertyName'.", nameof(propertyName)); PropertyInfo targetProperty = modelType.GetProperty(propertyName); Assert.NotNull(targetProperty); JsonPropertyAttribute jsonPropertyAttribute = targetProperty.GetCustomAttribute(); Assert.NotNull(jsonPropertyAttribute); return jsonPropertyAttribute.PropertyName; } /// /// Model used for serialisation tests. /// class TestModel { /// /// A 32-bit integer. /// [JsonProperty("number")] public int Number { get; set; } /// /// Some free-form text. /// [JsonProperty("text")] public string Text { get; set; } /// /// Either a 32-bit integer or some free-form text. /// [JsonProperty("mixed")] public Int32OrStringV1 Mixed { get; set; } } } } ================================================ FILE: test/KubeClient.Tests/KubeClient.Tests.csproj ================================================  net7.0;net8.0;net9.0;net10.0 ================================================ FILE: test/KubeClient.Tests/KubeClientOptionsTests.cs ================================================ using KubeClient.TestCommon; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; namespace KubeClient.Tests { /// /// Tests for . /// public class KubeClientOptionsTests : TestBase { /// /// Create a new test suite. /// /// /// The output for the current test. /// public KubeClientOptionsTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that is never null. /// [Fact(DisplayName = "LoggerFactory is never null")] public void Logger_Factory_Never_Null() { } } } ================================================ FILE: test/KubeClient.Tests/KubeObjectTests.cs ================================================ using System; using Xunit; using Xunit.Abstractions; namespace KubeClient.Tests { using Models; using TestCommon; /// /// Tests for the base class. /// public class KubeObjectTests : TestBase { /// /// Create a new test suite. /// /// /// Output for the current test. /// public KubeObjectTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that KubeObjectV1 correctly populates Kind and ApiVersion when constructed. /// [InlineData(typeof(DeleteOptionsV1), "DeleteOptions", "v1")] [InlineData(typeof(DeploymentV1Beta1), "Deployment", "apps/v1beta1")] [Theory(DisplayName = "KubeObjectV1 correctly populates Kind and ApiVersion ")] public void KubeObjectV1_Kind_Success(Type kubeObjectType, string expectedKind, string expectedApiVersion) { KubeObjectV1 kubeObject = (KubeObjectV1)Activator.CreateInstance(kubeObjectType); Assert.Equal(expectedKind, kubeObject.Kind); Assert.Equal(expectedApiVersion, kubeObject.ApiVersion); } } } ================================================ FILE: test/KubeClient.Tests/KubeResultTests.cs ================================================ using System; using Xunit; using Xunit.Abstractions; namespace KubeClient.Tests { using Models; using TestCommon; /// /// Tests for implementations. /// public class KubeResultTests : TestBase { /// /// Create a new test suite. /// /// /// Output for the current test. /// public KubeResultTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that a PodV1 resource result, when constructed from a PodV1, can be implicitly cast to a PodV1. /// [Fact(DisplayName = "PodV1 resource result from PodV1 can be cast to PodV1")] public void PodV1Result_From_PodV1_ImplicitCast_Resource() { PodV1 expected = new PodV1 { Metadata = new ObjectMetaV1 { Name = "my-pod", Namespace = "my-namespace" } }; var result = new KubeResourceResultV1(expected); PodV1 actual = result; Assert.NotNull(actual); Assert.Same(expected, actual); } /// /// Verify that a PodV1 resource result, when constructed from a failing StatusV1 throws a KubeApiException when implicitly cast to a PodV1. /// [Fact(DisplayName = "PodV1 resource result from failing StatusV1 throws when cast to PodV1")] public void PodV1Result_From_FailureStatus_ImplicitCast_Resource() { PodV1 pod = null; KubeApiException exception = Assert.Throws(() => { pod = new KubeResourceResultV1(new StatusV1 { Status = "Failure", Message = "Most definitely not a success." }); }); Assert.Null(pod); Assert.True(exception.HasStatus); Assert.Equal("Failure", exception.Status.Status); Assert.Equal("Most definitely not a success.", exception.Status.Message); } /// /// Verify that a PodV1 resource result, when constructed from a successful StatusV1, can be implicitly cast to a StatusV1. /// [Fact(DisplayName = "PodV1 resource result from successful StatusV1 can be cast to PodV1")] public void PodV1Result_From_SuccessStatus_ImplicitCast_Resource() { var result = new KubeResourceResultV1(new StatusV1 { Status = "Success", Message = "Most definitely a success." }); PodV1 pod = result; Assert.Null(pod); } /// /// Verify that a PodV1 resource result, when constructed from a failing StatusV1, can be implicitly cast to a . /// [Fact(DisplayName = "PodV1 resource result from failing StatusV1 can be cast to StatusV1")] public void PodV1Result_From_FailureStatus_ImplicitCast_Status() { var result = new KubeResourceResultV1(new StatusV1 { Status = "Failure", Message = "Most definitely not a success." }); StatusV1 status = result; Assert.NotNull(status); Assert.Equal("Failure", status.Status); Assert.Equal("Most definitely not a success.", status.Message); } } } ================================================ FILE: test/KubeClient.Tests/Logging/LogEntry.cs ================================================ using System; using System.Collections.Immutable; using Microsoft.Extensions.Logging; namespace KubeClient.Tests.Logging { /// /// Represents a log entry captured and republished by a . /// public class LogEntry { /// /// Create a new . /// /// /// The log entry's level (severity). /// /// /// The log entry's event Id. /// /// /// The log message. /// /// /// The log entry's associated exception (if any). /// /// /// State data associated with the log entry. /// /// /// Properties (if any) associated with the log entry. /// public LogEntry(LogLevel level, EventId eventId, string message, Exception exception, object state, ImmutableDictionary properties) { if (message == null) throw new ArgumentNullException(nameof(message)); if (properties == null) throw new ArgumentNullException(nameof(properties)); Level = level; EventId = eventId; Message = message; Exception = exception; State = state; Properties = properties; } /// /// The log entry's level (severity). /// public LogLevel Level { get; } /// /// The log entry's event Id. /// public EventId EventId { get; } /// /// The log message. /// public string Message { get; } /// /// The log entry's associated exception (if any). /// public Exception Exception { get; } /// /// State data associated with the log entry. /// public object State { get; } /// /// Properties associated with the log entry (if any). /// public ImmutableDictionary Properties { get; } } } ================================================ FILE: test/KubeClient.Tests/Logging/TestLogger.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Net.Http; using System.Reactive.Disposables; using System.Reactive.Subjects; using Microsoft.Extensions.Logging; namespace KubeClient.Tests.Logging { /// /// A stub implementation of for use in tests. /// public sealed class TestLogger : ILogger, IDisposable { /// /// The subject used to publish log entries. /// readonly Subject _logEntries = new Subject(); /// /// Create a new . /// /// /// The logger's minimum log level. /// public TestLogger(LogLevel minLogLevel) { MinLogLevel = minLogLevel; } /// /// Dispose of resources being used by the . /// public void Dispose() => _logEntries.Dispose(); /// /// The logger's minimum log level. /// public LogLevel MinLogLevel { get; } /// /// An observable sequence of log entries emitted by the . /// public IObservable LogEntries => _logEntries; /// /// Emit a log entry. /// /// /// The log entry's level. /// /// /// The log entry's associated event Id. /// /// /// The log entry to be written. Can be also an object. /// /// /// The exception (if any) related to the log entry. /// /// /// A function that creates a string log message from the and . /// public void Log(LogLevel level, EventId eventId, TState state, Exception exception, Func formatter) { if (formatter == null) throw new ArgumentNullException(nameof(formatter)); ImmutableDictionary properties = (state is IEnumerable> formattedLogValues) ? ImmutableDictionary.CreateRange(formattedLogValues) : ImmutableDictionary.Empty; _logEntries.OnNext(new LogEntry( level, eventId, formatter(state, exception), exception, state, properties )); } /// /// Check if the given is enabled. /// /// /// The level to be checked. /// /// /// true if enabled; otherwise, false. /// public bool IsEnabled(LogLevel logLevel) => logLevel >= MinLogLevel; /// /// Begin a logical operation scope. /// /// /// An identifier for the scope. /// /// /// An that ends the logical operation scope when disposed. /// public IDisposable BeginScope(TState state) => Disposable.Empty; } } ================================================ FILE: test/KubeClient.Tests/LoggingTests.cs ================================================ using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; namespace KubeClient.Tests { using KubeClient.Http; using KubeClient.Http.Clients; using KubeClient.Http.Diagnostics; using KubeClient.Http.Formatters; using KubeClient.Http.Testability; using KubeClient.Http.Testability.Xunit; using Logging; using Models; using Utilities; /// /// Tests for logging. /// public class LoggingTests { /// /// Create a new logging test suite. /// public LoggingTests() { } /// /// Verify that the client's logger emits BeginRequest / EndRequest log entries for PodV1 get-by-name. /// [Fact(DisplayName = "Emit BeginRequest / EndRequest log entries for PodV1 get-by-name (NotFound)")] public async Task PodsV1_GetByName_NotFound() { var logEntries = new List(); TestLogger logger = new TestLogger(LogLevel.Information); logger.LogEntries.Subscribe( logEntry => logEntries.Add(logEntry) ); ClientBuilder clientBuilder = new ClientBuilder() .WithLogging(logger); HttpClient httpClient = clientBuilder.CreateClient("http://localhost:1234", TestHandlers.RespondWith(request => { return request.CreateResponse(HttpStatusCode.NotFound, responseBody: JsonConvert.SerializeObject(new StatusV1 { Status = "Failure", Reason = "NotFound" }), WellKnownMediaTypes.Json ); })); KubeClientOptions clientOptions = new KubeClientOptions("http://localhost:1234"); using (KubeApiClient kubeClient = KubeApiClient.CreateTestClient(httpClient, clientOptions)) { PodV1 pod = await kubeClient.PodsV1().Get(name: "foo"); Assert.Null(pod); } Assert.Equal(2, logEntries.Count); LogEntry logEntry1 = logEntries[0]; Assert.Equal(LogEventIds.BeginRequest, logEntry1.EventId); Assert.Equal("Performing GET request to 'http://localhost:1234/api/v1/namespaces/default/pods/foo'.", logEntry1.Message ); Assert.Equal("GET", logEntry1.Properties["Method"] ); Assert.Equal(new Uri("http://localhost:1234/api/v1/namespaces/default/pods/foo"), logEntry1.Properties["RequestUri"] ); LogEntry logEntry2 = logEntries[1]; Assert.Equal(LogEventIds.EndRequest, logEntry2.EventId); Assert.Equal("Completed GET request to 'http://localhost:1234/api/v1/namespaces/default/pods/foo' (NotFound).", logEntry2.Message ); Assert.Equal("GET", logEntry2.Properties["Method"] ); Assert.Equal(new Uri("http://localhost:1234/api/v1/namespaces/default/pods/foo"), logEntry2.Properties["RequestUri"] ); Assert.Equal(HttpStatusCode.NotFound, logEntry2.Properties["StatusCode"] ); } /// /// Verify that the client's logger emits BeginRequest / EndRequest log entries for PodV1 get-by-name. /// [Fact(DisplayName = "Emit BeginRequest / EndRequest log entries for PodV1 get-by-name (OK)")] public async Task PodsV1_GetByName_OK() { var logEntries = new List(); TestLogger logger = new TestLogger(LogLevel.Information); logger.LogEntries.Subscribe( logEntry => logEntries.Add(logEntry) ); ClientBuilder clientBuilder = new ClientBuilder() .WithLogging(logger); HttpClient httpClient = clientBuilder.CreateClient("http://localhost:1234", TestHandlers.RespondWith(request => { return request.CreateResponse(HttpStatusCode.OK, responseBody: JsonConvert.SerializeObject(new PodV1 { Metadata = new ObjectMetaV1 { Name = "foo", Namespace = "default" } }), WellKnownMediaTypes.Json ); })); KubeClientOptions clientOptions = new KubeClientOptions("http://localhost:1234"); using (KubeApiClient kubeClient = KubeApiClient.CreateTestClient(httpClient, clientOptions)) { PodV1 pod = await kubeClient.PodsV1().Get(name: "foo"); Assert.NotNull(pod); Assert.NotNull(pod.Metadata); Assert.Equal("foo", pod.Metadata.Name); Assert.Equal("default", pod.Metadata.Namespace); } Assert.Equal(2, logEntries.Count); LogEntry logEntry1 = logEntries[0]; Assert.Equal(LogLevel.Debug, logEntry1.Level); Assert.Equal(LogEventIds.BeginRequest, logEntry1.EventId); Assert.Equal("Performing GET request to 'http://localhost:1234/api/v1/namespaces/default/pods/foo'.", logEntry1.Message ); Assert.Equal("GET", logEntry1.Properties["Method"] ); Assert.Equal(new Uri("http://localhost:1234/api/v1/namespaces/default/pods/foo"), logEntry1.Properties["RequestUri"] ); LogEntry logEntry2 = logEntries[1]; Assert.Equal(LogLevel.Debug, logEntry2.Level); Assert.Equal(LogEventIds.EndRequest, logEntry2.EventId); Assert.Equal("Completed GET request to 'http://localhost:1234/api/v1/namespaces/default/pods/foo' (OK).", logEntry2.Message ); Assert.Equal("GET", logEntry2.Properties["Method"] ); Assert.Equal(new Uri("http://localhost:1234/api/v1/namespaces/default/pods/foo"), logEntry2.Properties["RequestUri"] ); Assert.Equal(HttpStatusCode.OK, logEntry2.Properties["StatusCode"] ); } /// /// Verify that the client's logger emits the correct log entry from a custom request action. /// [Fact(DisplayName = "Emit log entry from custom request action")] public async Task Custom_Request_Action() { var logEntries = new List(); TestLogger logger = new TestLogger(LogLevel.Information); logger.LogEntries.Subscribe( logEntry => logEntries.Add(logEntry) ); ClientBuilder clientBuilder = new ClientBuilder() .WithLogging(logger); HttpClient httpClient = clientBuilder.CreateClient("http://localhost:1234/api", TestHandlers.RespondWith(request => { return request.CreateResponse(HttpStatusCode.OK, responseBody: JsonConvert.SerializeObject(new StatusV1 { Status = "Success", }), WellKnownMediaTypes.Json ); })); HttpRequest request = HttpRequest.Create("{Foo}/{Bar}?Baz={Baz}") .WithRequestAction((HttpRequestMessage requestMessage) => { logger.LogDebug("Start streaming {RequestMethod} request for {RequestUri}...", HttpMethod.Get, requestMessage.RequestUri.SafeGetPathAndQuery()); }).WithTemplateParameters(new { Foo = "foo", Bar = "bAr", Baz = "b4z", }); using (HttpResponseMessage response = await httpClient.GetAsync(request)) { // [0] = Custom message, [1] = Begin request, [2] End request Assert.Equal(3, logEntries.Count); Assert.Equal("Start streaming GET request for /api/foo/bAr?Baz=b4z...", logEntries[0].Message); response.EnsureSuccessStatusCode(); } } } } ================================================ FILE: test/KubeClient.Tests/ModelMetadataTests.cs ================================================ using System; using Xunit; using Xunit.Abstractions; namespace KubeClient.Tests { using Models; using TestCommon; /// /// Tests for the base class. /// public class ModelMetadataTests : TestBase { /// /// Create a new test suite. /// /// /// Output for the current test. /// public ModelMetadataTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that the typed ModelMetadata API correctly indicates that ComponentStatusV1.Conditions is a merge property. /// [Fact(DisplayName = "ComponentStatusV1.Conditions is a Merge property (typed)")] public void IsMergeProperty_ComponentStatusV1_Conditions_Typed() { bool isMergeProperty = ModelMetadata.StrategicPatch.For.IsMergeStrategy(status => status.Conditions); Assert.True(isMergeProperty); } /// /// Verify that the untyped ModelMetadata API correctly indicates that ComponentStatusV1.Conditions is a merge property. /// [Fact(DisplayName = "ComponentStatusV1.Conditions is a Merge property (untyped)")] public void IsMergeProperty_ComponentStatusV1_Conditions_Untyped() { bool isMergeProperty = ModelMetadata.StrategicPatch.IsMergeStrategy( typeof(ComponentStatusV1).GetProperty("Conditions") ); Assert.True(isMergeProperty); } } } ================================================ FILE: test/KubeClient.Tests/ServerSideApplyTests.cs ================================================ using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; namespace KubeClient.Tests { using ErrorHandling; using KubeClient.Http.Testability; using Models; using ResourceClients; using TestCommon; /// /// Integration tests for server-side apply (via ). /// public class ServerSideApplyTests : TestBase { /// /// Create a new server-side-apply test suite. /// /// /// Output for the current test. /// public ServerSideApplyTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that server-side apply of a model results in a PATCH request with the correct content type. /// [Fact(DisplayName = "Server-side apply of model")] public async Task ApplyModel() { MockMessageHandler handler = new MockMessageHandler(async (HttpRequestMessage request) => { Assert.Equal("PATCH", request.Method.Method); Assert.NotNull(request.Content); string requestBody = await request.Content.ReadAsStringAsync(); Log.LogInformation("Request body:\n{RequestBody:l}", requestBody); Assert.NotNull(request.Content.Headers.ContentType); Assert.Equal("application/apply-patch+yaml", request.Content.Headers.ContentType.MediaType); Assert.Contains("fieldManager=my-field-manager", request.RequestUri.Query); return request.CreateResponse(HttpStatusCode.OK, responseBody: JsonConvert.SerializeObject(new PodV1 { Metadata = new ObjectMetaV1 { Name = "my-pod", Namespace = "my-namespace", Finalizers = // Array test { "foo", "bar" } } }), mediaType: "application/json" ); }); using (KubeApiClient client = handler.CreateClient(loggerFactory: LoggerFactory)) { PodV1 resource = new PodV1 { Metadata = new ObjectMetaV1 { Name = "my-pod", Namespace = "my-namespace", Finalizers = // Array test { "foo", "bar" } } }; await client.Dynamic().Apply(resource, fieldManager: "my-field-manager" ); } } /// /// Verify that server-side apply of raw YAML results in a PATCH request with the correct content type. /// [Fact( DisplayName = "Server-side apply of raw YAML" )] public async Task ApplyYaml() { MockMessageHandler handler = new MockMessageHandler(request => { Assert.Equal("PATCH", request.Method.Method); Assert.NotNull(request.Content); Assert.NotNull(request.Content.Headers.ContentType); Assert.Equal("application/apply-patch+yaml", request.Content.Headers.ContentType.MediaType); Assert.Contains("fieldManager=my-field-manager", request.RequestUri.Query); return request.CreateResponse(HttpStatusCode.OK, responseBody: JsonConvert.SerializeObject(new PodV1 { Metadata = new ObjectMetaV1 { Name = "my-pod", Namespace = "my-namespace" } }), mediaType: "application/json" ); }); const string podYaml = @" kind: Pod apiVersion: v1 metadata: name: my-pod "; using (KubeApiClient client = handler.CreateClient(loggerFactory: LoggerFactory)) { await client.Dynamic().ApplyYaml( name: "my-pod", kind: "Pod", apiVersion: "v1", yaml: podYaml, fieldManager: "my-field-manager", kubeNamespace: "my-namespace" ); } } } } ================================================ FILE: test/KubeClient.Tests/UriHelperTests.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace KubeClient.Tests { using Utilities; using Xunit; /// /// Tests for . /// public class UriHelperTests { static readonly Uri BaseUri = new Uri("https://localhost"); [Theory] [InlineData("/")] [InlineData("/?param1=value1¶m2=value2")] [InlineData("path1")] [InlineData("path1?param1=value1¶m2=value2")] [InlineData("path1/path2")] [InlineData("path1/path2?param1=value1¶m2=value2")] [InlineData("path1/path2/")] [InlineData("path1/path2/?param1=value1¶m2=value2")] [InlineData("/path1")] [InlineData("/path1?param1=value1¶m2=value2")] [InlineData("/path1/path2")] [InlineData("/path1/path2?param1=value1¶m2=value2")] [InlineData("/path1/path2/")] [InlineData("/path1/path2/?param1=value1¶m2=value2")] public void Can_SafeGetPathAndQuery_RelativeUri(string input) { Uri uri = new Uri(input, UriKind.RelativeOrAbsolute); Assert.False(uri.IsAbsoluteUri); string pathAndQuery = uri.SafeGetPathAndQuery(); Assert.Equal(pathAndQuery, NormalizePath(input) ); } [Theory] [InlineData("/")] [InlineData("/?param1=value1¶m2=value2")] [InlineData("path1")] [InlineData("path1?param1=value1¶m2=value2")] [InlineData("path1/path2")] [InlineData("path1/path2?param1=value1¶m2=value2")] [InlineData("path1/path2/")] [InlineData("path1/path2/?param1=value1¶m2=value2")] [InlineData("/path1")] [InlineData("/path1?param1=value1¶m2=value2")] [InlineData("/path1/path2")] [InlineData("/path1/path2?param1=value1¶m2=value2")] [InlineData("/path1/path2/")] [InlineData("/path1/path2/?param1=value1¶m2=value2")] public void Can_SafeGetPathAndQuery_AbsoluteUri(string input) { Uri relativeUri = new Uri(input, UriKind.RelativeOrAbsolute); Assert.False(relativeUri.IsAbsoluteUri); Uri uri = new Uri(BaseUri, relativeUri); string pathAndQuery = uri.SafeGetPathAndQuery(); Assert.Equal(pathAndQuery, NormalizePath(input) ); } /// /// Normalise the specified path and query for comparisons in tests. /// /// /// The URI path and query components. /// /// /// The normalised path and query. /// /// /// System.Uri treats the path component of an absolute URI as an absolute path. /// static string NormalizePath(string pathAndQuery) { if (pathAndQuery == null) throw new ArgumentNullException(nameof(pathAndQuery)); if (pathAndQuery.StartsWith("/")) return pathAndQuery; return $"/{pathAndQuery}"; } } } ================================================ FILE: test/KubeClient.Tests/YamlSerializationTests.cs ================================================ using System; using System.IO; using Xunit; using Xunit.Abstractions; using YamlDotNet.Serialization; namespace KubeClient.Tests { using Models; using TestCommon; /// /// Tests for YAML serialisation of various Kubernetes models. /// public class YamlSerializationTests : TestBase { /// /// Create a new Kubernetes model serialisation test suite. /// /// /// Output for the current test. /// public YamlSerializationTests(ITestOutputHelper testOutput) : base(testOutput) { } /// /// Verify that an can be correctly serialised to YAML (regardless of whether it's a number or string). /// [InlineData(null, null)] [InlineData(567, "567")] [InlineData("567", "567")] [InlineData("567tcp", "567tcp")] [InlineData("567 tcp", "567 tcp")] [Theory(DisplayName = "Can serialise Int32OrStringV1 to YAML")] public void Can_Serialize_Int32OrStringV1(object rawValue, string renderedValue) { ISerializer serializer = CreateSerializer(); Int32OrStringV1 int32OrString; if (rawValue is string stringValue) int32OrString = stringValue; else if (rawValue is int intValue) int32OrString = intValue; else if (rawValue == null) int32OrString = null; else throw new InvalidOperationException($"Unexpected value type: '{rawValue.GetType().FullName}'."); var model = new TestModel { Number = 123, Text = "hello", Mixed = int32OrString }; string expected = "number: 123\ntext: hello\n"; if (renderedValue != null) expected += $"mixed: {renderedValue}\n"; expected = NormalizeLineEndings(expected); string actual = serializer.Serialize(model); Assert.Equal(expected, actual); } /// /// Verify that an can be correctly deserialised from YAML (regardless of whether it's a number or string). /// [InlineData("", null)] [InlineData("mixed: 567", 567)] [Theory(DisplayName = "Can deserialise Int32OrStringV1 from YAML")] public void Can_Deserialize_Int32OrStringV1(string yaml, object expectedValue) { Int32OrStringV1 expectedMixed; switch (expectedValue) { case int intValue: { expectedMixed = intValue; break; } case string stringValue: { expectedMixed = stringValue; break; } case null: { expectedMixed = null; break; } default: { throw new NotSupportedException( $"Expected value is of unsupported type '{expectedValue.GetType().FullName}'." ); } } // Other properties const int expectedNumber = 123; const string expectedText = "hello"; yaml = $"number: {expectedNumber}\ntext: {expectedText}\n{yaml}\n"; // Cross-platform compatibility ;-) yaml = NormalizeLineEndings(yaml); IDeserializer deserializer = CreateDeserializer(); TestModel model; using (TextReader yamlReader = new StringReader(yaml)) { model = deserializer.Deserialize(yamlReader); } Assert.NotNull(model); Assert.Equal(expectedNumber, model.Number); Assert.Equal(expectedText, model.Text); Assert.Equal(expectedMixed, model.Mixed); } /// /// Normalise line-endings to match the local environment. /// /// The text to normalise. /// The text with line-endings updated to match . static string NormalizeLineEndings(string text) { if (text == null) throw new ArgumentNullException(nameof(text)); return text.Replace("\n", Environment.NewLine); } /// /// Create a YAML for use in tests. /// /// /// The configured . /// static ISerializer CreateSerializer() => new SerializerBuilder() .ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitNull) .Build(); /// /// Create a YAML for use in tests. /// /// /// The configured . /// static IDeserializer CreateDeserializer() => new DeserializerBuilder().Build(); /// /// Model used for serialisation tests. /// class TestModel { /// /// A 32-bit integer. /// [YamlMember(Alias = "number")] public int Number { get; set; } /// /// Some free-form text. /// [YamlMember(Alias = "text")] public string Text { get; set; } /// /// Either a 32-bit integer or some free-form text. /// [YamlMember(Alias = "mixed")] public Int32OrStringV1 Mixed { get; set; } } } } ================================================ FILE: test/TestProject.Common.props ================================================ false true runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive all