Full Code of tintoy/dotnet-kube-client for AI

develop 6dccfe7e6733 cached
1203 files
10.2 MB
2.7M tokens
3191 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (10,937K chars total). Download the full file to get everything.
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: '[/-](?<number>\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
================================================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="HTTPlease" value="https://www.myget.org/F/httplease/api/v3/index.json" />
    <add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>


================================================
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<TResource>` and `KubeResourceListResultV1<TResource>`).

`KubeResourceResultV1<TResource>` 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<TResource>` 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<PodV1>> 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<PodListV1>();

        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<K8sMultiplexer> 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<TResource>` and `KubeResourceListResultV1<TResource>`).

`KubeResourceResultV1<TResource>` 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<TResource>` 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<PodV1>> 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<PodListV1>();

        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<K8sMultiplexer> 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
================================================
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <IsPackable>false</IsPackable>

    <LangVersion>latest</LangVersion>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="../../src/KubeClient/KubeClient.csproj" />
    <ProjectReference Include="../../src/KubeClient.Extensions.Configuration/KubeClient.Extensions.Configuration.csproj" />
    <ProjectReference Include="../../src/KubeClient.Extensions.KubeConfig/KubeClient.Extensions.KubeConfig.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="CommandLineParser" Version="2.9.1" />
    <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
  </ItemGroup>
</Project>


================================================
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;

    /// <summary>
    ///     The ConfigFromConfigMap program.
    /// </summary>
    static class Program
    {
        /// <summary>
        ///     The main program's logger.
        /// </summary>
        static ILogger Log { get; set; }

        /// <summary>
        ///     The main program entry-point.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The program's command-line arguments.
        /// </param>
        /// <returns>
        ///     The program exit-code.
        /// </returns>
        static async Task<int> Main(string[] commandLineArguments)
        {
            ProgramOptions options = ProgramOptions.Parse(commandLineArguments);
            if (options == null)
                return ExitCodes.InvalidArguments;

            using ServiceProvider loggingServiceProvider = ConfigureLogging(options);
            ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService<ILoggerFactory>();

            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<StatusV1> kubeError)
            {
                Log.LogError(kubeError, "Kubernetes API error: {@Status}", kubeError.Response);

                return ExitCodes.UnexpectedError;
            }
            catch (Exception unexpectedError)
            {
                Log.LogError(unexpectedError, "Unexpected error.");

                return ExitCodes.UnexpectedError;
            }
        }

        /// <summary>
        ///     Dump configuration keys and values to the log.
        /// </summary>
        /// <param name="configuration">The <see cref="IConfiguration"/>.</param>
        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);
        }

        /// <summary>
        ///     Configure application-level logging and populate <see cref="Log"/>.
        /// </summary>
        /// <param name="options">
        ///     Program options.
        /// </param>
        /// <returns>
        ///     The global logging service provider.
        /// </returns>
        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<ILoggerFactory>();

                Log = loggerFactory.CreateLogger(typeof(Program));

                return loggingServiceProvider;
            }
            catch (Exception)
            {
                // Clean up, on failure (if possible).
                using (loggingServiceProvider)
                {
                    throw;
                }
            }
        }

        /// <summary>
        ///     Global initialisation.
        /// </summary>
        static Program()
        {
            SynchronizationContext.SetSynchronizationContext(
                new SynchronizationContext()
            );
        }

        /// <summary>
        ///     Well-known program exit codes.
        /// </summary>
        public static class ExitCodes
        {
            /// <summary>
            ///     Program completed successfully.
            /// </summary>
            public const int Success = 0;

            /// <summary>
            ///     One or more command-line arguments were missing or invalid.
            /// </summary>
            public const int InvalidArguments = 1;

            /// <summary>
            ///     An unexpected error occurred during program execution.
            /// </summary>
            public const int UnexpectedError = 5;
        }
    }

    /// <summary>
    ///     Extension methods for working with <see cref="IConfiguration"/>.
    /// </summary>
    public static class ConfigurationExtensions
    {
        /// <summary>
        ///     Register a callback for configuration reload notifications.
        /// </summary>
        /// <param name="configuration">
        ///     The configuration.
        /// </param>
        /// <param name="action">
        ///     The <see cref="Action"/> delegate to invoke when the configuration is reloaded.
        /// </param>
        /// <returns>
        ///     An <see cref="IDisposable"/> which, when disposed, terminates the notifications.
        /// </returns>
        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);
        }

        /// <summary>
        /// Register a callback for configuration reload notifications.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="action">The <see cref="Action{T1}"/> delegate to invoke when the configuration is reloaded.</param>
        /// <returns>An <see cref="IDisposable"/> which, when disposed, terminates the notifications.</returns>
        public static IDisposable OnReload(this IConfiguration configuration, Action<IConfiguration> 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
{
    /// <summary>
    ///     Program options for ConfigFromConfigMap.
    /// </summary>
    class ProgramOptions
    {
        /// <summary>
        ///     Enable verbose logging.
        /// </summary>
        [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging.")]
        public bool Verbose { get; set; }

        /// <summary>
        ///     Parse program options from command-line arguments.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The command-line arguments
        /// </param>
        /// <returns>
        ///     The parsed <see cref="ProgramOptions"/>, or <c>null</c> if the command-line arguments could not be parsed.
        /// </returns>
        public static ProgramOptions Parse(string[] commandLineArguments)
        {
            ProgramOptions options = null;

            Parser.Default.ParseArguments<ProgramOptions>(commandLineArguments)
                .WithParsed(parsedOptions => options = parsedOptions);

            return options;
        }
    }
}


================================================
FILE: samples/DeploymentWithRollback/DeploymentWithRollback.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <IsPackable>false</IsPackable>

    <LangVersion>latest</LangVersion>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="../../src/KubeClient/KubeClient.csproj" />
    <ProjectReference Include="../../src/KubeClient.Extensions.KubeConfig/KubeClient.Extensions.KubeConfig.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="CommandLineParser" Version="2.9.1" />
    <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
  </ItemGroup>

</Project>


================================================
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;

    /// <summary>
    ///     A sample program that demonstrates creating a K8s deployment, updating it, and then rolling back to an older version.
    /// </summary>
    static class Program
    {
        /// <summary>
        ///     The main program's logger.
        /// </summary>
        static ILogger Log { get; set; }

        /// <summary>
        ///     The main program entry-point.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The program's command-line arguments.
        /// </param>
        /// <returns>
        ///     The program exit-code.
        /// </returns>
        static async Task<int> Main(string[] commandLineArguments)
        {
            ProgramOptions options = ProgramOptions.Parse(commandLineArguments);
            if (options == null)
                return ExitCodes.InvalidArguments;

            using ServiceProvider loggingServiceProvider = ConfigureLogging(options);
            ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService<ILoggerFactory>();

            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<StatusV1> kubeError)
            {
                Log.LogError(kubeError, "Kubernetes API error: {@Status}", kubeError.Response);

                return ExitCodes.UnexpectedError;
            }
            catch (Exception unexpectedError)
            {
                Log.LogError(unexpectedError, "Unexpected error.");

                return ExitCodes.UnexpectedError;
            }
        }

        /// <summary>
        ///     Create the initial Deployment.
        /// </summary>
        /// <param name="client">
        ///     The Kubernetes API client.
        /// </param>
        /// <param name="deploymentName">
        ///     The name of the Deployment to create.
        /// </param>
        /// <param name="deploymentNamespace">
        ///     The name of the Kubernetes namespace in which the Deployment will be created.
        /// </param>
        /// <returns>
        ///     A <see cref="DeploymentV1"/> representing the Deployment's current state.
        /// </returns>
        static async Task<DeploymentV1> 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;
        }

        /// <summary>
        ///     Update a Deployment, modifying its Command.
        /// </summary>
        /// <param name="client">
        ///     The Kubernetes API client.
        /// </param>
        /// <param name="existingDeployment">
        ///     A <see cref="DeploymentV1"/> representing the Deployment to update.
        /// </param>
        /// <returns>
        ///     A <see cref="DeploymentV1"/> representing the Deployment's current state.
        /// </returns>
        static async Task<DeploymentV1> 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<string> { "/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;
        }

        /// <summary>
        ///     Find the ReplicaSet that corresponds to the specified revision of the specified Deployment.
        /// </summary>
        /// <param name="client">
        ///     The Kubernetes API client.
        /// </param>
        /// <param name="deployment">
        ///     The target Deployment.
        /// </param>
        /// <param name="targetRevision">
        ///     The target revision.
        /// </param>
        /// <returns>
        ///     A <see cref="ReplicaSetV1"/> representing the ReplicaSet's current state; <c>null</c>, if no corresponding ReplicaSet was found.
        /// </returns>
        static async Task<ReplicaSetV1> 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;
        }

        /// <summary>
        ///     Roll back a Deployment to the revision represented by the specified ReplicaSet.
        /// </summary>
        /// <param name="client">
        ///     The Kubernetes API client.
        /// </param>
        /// <param name="existingDeployment">
        ///     The target Deployment.
        /// </param>
        /// <param name="targetRevisionReplicaSet">
        ///     The ReplicaSet that represents the target revision.
        /// </param>
        /// <returns>
        ///     A <see cref="DeploymentV1"/> representing the Deployment's current state.
        /// </returns>
        static async Task<DeploymentV1> 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<string, string> 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;
        }

        /// <summary>
        ///     Determine whether a Deployment owns a ReplicaSet.
        /// </summary>
        /// <param name="deployment">
        ///     The Deployment to examine.
        /// </param>
        /// <param name="replicaSet">
        ///     The ReplicaSet to examine.
        /// </param>
        /// <returns>
        ///     <c>true</c>, if the ReplicaSet has an owner-reference to the Deployment; otherwise, <c>false</c>.
        /// </returns>
        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;
        }

        /// <summary>
        ///     Configure application-level logging and populate <see cref="Log"/>.
        /// </summary>
        /// <param name="options">
        ///     Program options.
        /// </param>
        /// <returns>
        ///     The global logging service provider.
        /// </returns>
        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<ILoggerFactory>();

                Log = loggerFactory.CreateLogger(typeof(Program));

                return loggingServiceProvider;
            }
            catch (Exception)
            {
                // Clean up, on failure (if possible).
                using (loggingServiceProvider)
                {
                    throw;
                }
            }
        }

        /// <summary>
        ///     Global initialisation.
        /// </summary>
        static Program()
        {
            SynchronizationContext.SetSynchronizationContext(
                new SynchronizationContext()
            );
        }

        /// <summary>
        ///     Well-known program exit codes.
        /// </summary>
        public static class ExitCodes
        {
            /// <summary>
            ///     Program completed successfully.
            /// </summary>
            public const int Success = 0;

            /// <summary>
            ///     One or more command-line arguments were missing or invalid.
            /// </summary>
            public const int InvalidArguments = 1;

            /// <summary>
            ///     Resource not found.
            /// </summary>
            public const int NotFound = 2;

            /// <summary>
            ///     Resource already exists.
            /// </summary>
            public const int AlreadyExists = 3;

            /// <summary>
            ///     An unexpected error occurred during program execution.
            /// </summary>
            public const int UnexpectedError = 5;
        }
    }
}


================================================
FILE: samples/DeploymentWithRollback/ProgramOptions.cs
================================================
using CommandLine;

namespace KubeClient.Samples.DeploymentWithRollback
{
    /// <summary>
    ///     Program options for DeploymentWithRollback.
    /// </summary>
    class ProgramOptions
    {
        /// <summary>
        ///     The name of the deployment to create.
        /// </summary>
        [Option('n', "name", Required = true, HelpText = "The name of the deployment to create")]
        public string DeploymentName { get; set; }

        /// <summary>
        ///     The name of the namespace where the deployment will be created.
        /// </summary>
        [Option("namespace", Default = "default", HelpText = "The name of the namespace where the deployment will be created.")]
        public string KubeNamespace { get; set; }

        /// <summary>
        ///     Enable verbose logging.
        /// </summary>
        [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging")]
        public bool Verbose { get; set; }

        /// <summary>
        ///     Parse program options from command-line arguments.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The command-line arguments
        /// </param>
        /// <returns>
        ///     The parsed <see cref="ProgramOptions"/>, or <c>null</c> if the command-line arguments could not be parsed.
        /// </returns>
        public static ProgramOptions Parse(string[] commandLineArguments)
        {
            ProgramOptions options = null;

            Parser.Default.ParseArguments<ProgramOptions>(commandLineArguments)
                .WithParsed(parsedOptions => options = parsedOptions);

            return options;
        }
    }
}

================================================
FILE: samples/Directory.Build.props
================================================
<Project>
  <!-- Common settings for projects -->
  <PropertyGroup>
    <LangVersion>latest</LangVersion>
    
    <!-- Don't pack sample projects -->
    <IsPackable>false</IsPackable>
  </PropertyGroup>
</Project>

================================================
FILE: samples/ExtensionsSample/ExtensionsSample.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.0" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
    <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'net7.0'">
    <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="7.0.0" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
    <PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
    <PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.3" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
    <PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="../../src/KubeClient.Extensions.Configuration/KubeClient.Extensions.Configuration.csproj" />
    <ProjectReference Include="../../src/KubeClient/KubeClient.csproj" />
  </ItemGroup>

</Project>


================================================
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
{
    /// <summary>
    /// Make sure to run: <code>kubectl apply -f ./thing-configmap.yaml</code> to create the extensions-sample configMap before running this sample.  You also need to be running <code>kubectl proxy</code>
    /// </summary>
    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;

    /// <summary>
    ///     A sample program that demonstrates creating how to watch events in a K8s namespace and resolve the resources defined in those events.
    /// </summary>
    static class Program
    {
        /// <summary>
        ///     The main program's logger.
        /// </summary>
        static ILogger Log { get; set; }

        /// <summary>
        ///     The main program entry-point.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The program's command-line arguments.
        /// </param>
        /// <returns>
        ///     The program exit-code.
        /// </returns>
        static async Task<int> Main(string[] commandLineArguments)
        {
            ProgramOptions options = ProgramOptions.Parse(commandLineArguments);
            if (options == null)
                return ExitCodes.InvalidArguments;

            using ServiceProvider loggingServiceProvider = ConfigureLogging(options);
            ILoggerFactory loggerFactory = loggingServiceProvider.GetRequiredService<ILoggerFactory>();

            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<EventV1> 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<IResourceEventV1<EventV1>> 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<StatusV1> kubeError)
            {
                Log.LogError(kubeError, "Kubernetes API error: {@Status}", kubeError.Response);

                return ExitCodes.UnexpectedError;
            }
            catch (Exception unexpectedError)
            {
                Log.LogError(unexpectedError, "Unexpected error.");

                return ExitCodes.UnexpectedError;
            }
        }

        /// <summary>
        /// Create a TPL dataflow block to process events.
        /// </summary>
        /// <param name="client">The Kubernetes API client.</param>
        /// <returns>The configured <see cref="ActionBlock{TInput}"/>.</returns>
        static ActionBlock<EventV1> CreateEventProcessor(IKubeApiClient client)
        {
            if (client == null)
                throw new ArgumentNullException(nameof(client));
            
            ActionBlock<EventV1> eventProcessor = new ActionBlock<EventV1>(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;
        }

        /// <summary>
        /// Attempt to resolve the related resource for the specified event.
        /// </summary>
        /// <param name="client">The Kubernetes API client.</param>
        /// <param name="eventResource">The <see cref="EventV1"/> to process.</param>
        /// <returns>A task representing the asynchronous operation.</returns>
        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
                );
            }
        }

        /// <summary>
        ///     Configure application-level logging and populate <see cref="Log"/>.
        /// </summary>
        /// <param name="options">
        ///     Program options.
        /// </param>
        /// <returns>
        ///     The global logging service provider.
        /// </returns>
        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<ILoggerFactory>();

                Log = loggerFactory.CreateLogger(typeof(Program));

                return loggingServiceProvider;
            }
            catch (Exception)
            {
                // Clean up, on failure (if possible).
                using (loggingServiceProvider)
                {
                    throw;
                }
            }
        }

        /// <summary>
        ///     Global initialisation.
        /// </summary>
        static Program()
        {
            SynchronizationContext.SetSynchronizationContext(
                new SynchronizationContext()
            );
        }

        /// <summary>
        ///     Well-known program exit codes.
        /// </summary>
        public static class ExitCodes
        {
            /// <summary>
            ///     Program completed successfully.
            /// </summary>
            public const int Success = 0;

            /// <summary>
            ///     One or more command-line arguments were missing or invalid.
            /// </summary>
            public const int InvalidArguments = 1;

            /// <summary>
            ///     Resource not found.
            /// </summary>
            public const int NotFound = 2;

            /// <summary>
            ///     Resource already exists.
            /// </summary>
            public const int AlreadyExists = 3;

            /// <summary>
            ///     An unexpected error occurred during program execution.
            /// </summary>
            public const int UnexpectedError = 5;
        }
    }
}


================================================
FILE: samples/WatchEvents/ProgramOptions.cs
================================================
using CommandLine;

namespace KubeClient.Samples.WatchEvents
{
    /// <summary>
    ///     Program options for WatchEvents.
    /// </summary>
    class ProgramOptions
    {
        /// <summary>
        ///     The name of the namespace where the deployment will be created.
        /// </summary>
        [Option("namespace", Default = "default", HelpText = "The name of the namespace where the deployment will be created.")]
        public string KubeNamespace { get; set; }

        /// <summary>
        ///     Enable verbose logging.
        /// </summary>
        [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging")]
        public bool Verbose { get; set; }

        /// <summary>
        ///     Parse program options from command-line arguments.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The command-line arguments
        /// </param>
        /// <returns>
        ///     The parsed <see cref="ProgramOptions"/>, or <c>null</c> if the command-line arguments could not be parsed.
        /// </returns>
        public static ProgramOptions Parse(string[] commandLineArguments)
        {
            ProgramOptions options = null;

            Parser.Default.ParseArguments<ProgramOptions>(commandLineArguments)
                .WithParsed(parsedOptions => options = parsedOptions);

            return options;
        }
    }
}

================================================
FILE: samples/WatchEvents/WatchEvents.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <LangVersion>latest</LangVersion>
    <IsPackable>false</IsPackable>

  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="../../src/KubeClient/KubeClient.csproj" />
    <ProjectReference Include="../../src/KubeClient.Extensions.KubeConfig/KubeClient.Extensions.KubeConfig.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="CommandLineParser" Version="2.9.1" />
    <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
    <PackageReference Include="System.Reactive" Version="6.0.1" />
    <PackageReference Include="System.Threading.Tasks.Dataflow" Version="8.0.1" />
  </ItemGroup>
</Project>


================================================
FILE: samples/noob-exec/NoobExec.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <AssemblyName>noob-exec</AssemblyName>
    <TargetFramework>net10.0</TargetFramework>
    <IsPackable>false</IsPackable>

    <LangVersion>latest</LangVersion>
  </PropertyGroup>

  <ItemGroup>
      <ProjectReference Include="../../src/KubeClient/KubeClient.csproj" />
      <ProjectReference Include="../../src/KubeClient.Extensions.KubeConfig/KubeClient.Extensions.KubeConfig.csproj" />
      <ProjectReference Include="../../src/KubeClient.Extensions.WebSockets/KubeClient.Extensions.WebSockets.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="CommandLineParser" Version="2.9.1" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.0" />
    <PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
  </ItemGroup>
</Project>


================================================
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;

    /// <summary>
    ///     The NoobExec program.
    /// </summary>
    static class Program
    {
        /// <summary>
        ///     The main program's logger.
        /// </summary>
        static ILogger Log { get; set; }

        /// <summary>
        ///     The main program entry-point.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The program's command-line arguments.
        /// </param>
        /// <returns>
        ///     The program exit-code.
        /// </returns>
        static async Task<int> 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<ILoggerFactory>();

            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;
            }
        }

        /// <summary>
        ///     Configure application-level logging and populate <see cref="Log"/>.
        /// </summary>
        /// <param name="options">
        ///     Program options.
        /// </param>
        /// <returns>
        ///     The global logging service provider.
        /// </returns>
        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<ILoggerFactory>();

                Log = loggerFactory.CreateLogger(typeof(Program));

                return loggingServiceProvider;
            }
            catch (Exception)
            {
                // Clean up, on failure (if possible).
                using (loggingServiceProvider)
                {
                    throw;
                }
            }
        }

        /// <summary>
        ///     Global initialisation.
        /// </summary>
        static Program()
        {
            SynchronizationContext.SetSynchronizationContext(
                new SynchronizationContext()
            );
        }

        /// <summary>
        ///     Well-known program exit codes.
        /// </summary>
        public static class ExitCodes
        {
            /// <summary>
            ///     Program completed successfully.
            /// </summary>
            public const int Success = 0;

            /// <summary>
            ///     One or more command-line arguments were missing or invalid.
            /// </summary>
            public const int InvalidArguments = 1;

            /// <summary>
            ///     The target resource was not found.
            /// </summary>
            public const int NotFound = 10;

            /// <summary>
            ///     An unexpected error occurred during program execution.
            /// </summary>
            public const int UnexpectedError = 50;
        }
    }
}


================================================
FILE: samples/noob-exec/ProgramOptions.cs
================================================
using CommandLine;

namespace KubeClient.Samples.NoobExec
{
    /// <summary>
    ///     Program options for NoobExec.
    /// </summary>
    class ProgramOptions
    {
        /// <summary>
        ///     The name of the target pod.
        /// </summary>
        [Option('p', "pod", Required = true, HelpText = "The name of the target pod.")]
        public string PodName { get; set; }

        /// <summary>
        ///     The command to execute.
        /// </summary>
        [Option('c', "command", Required = true, HelpText = "The command to execute.")]
        public string Command { get; set; }

        /// <summary>
        ///     The name of the target container within the target pod.
        /// </summary>
        /// <remarks>
        ///     Optional, if the pod only has a single container.
        /// </remarks>
        [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; }
        
        /// <summary>
        ///     The Kubernetes namespace where the target pod is located.
        /// </summary>
        [Option('n', "namespace", Default = "default", HelpText = "The Kubernetes namespace where the target pod is located.")]
        public string KubeNamespace { get; set; }

        /// <summary>
        ///     The name of the Kubernetes client configuration context to use.
        /// </summary>
        [Option('k', "kube-context", Default = null, HelpText = "The name of the Kubernetes client configuration context to use.")]
        public string KubeContext { get; set; }

        /// <summary>
        ///     Enable verbose logging?
        /// </summary>
        [Option('v', "verbose", Default = false, HelpText = "Enable verbose logging.")]
        public bool Verbose { get; set; }

        /// <summary>
        ///     Parse program options from command-line arguments.
        /// </summary>
        /// <param name="commandLineArguments">
        ///     The command-line arguments
        /// </param>
        /// <returns>
        ///     The parsed <see cref="ProgramOptions"/>, or <c>null</c> if the command-line arguments could not be parsed.
        /// </returns>
        public static ProgramOptions Parse(string[] commandLineArguments)
        {
            ProgramOptions options = null;

            Parser.Default.ParseArguments<ProgramOptions>(commandLineArguments)
                .WithParsed(parsedOptions => options = parsedOptions);

            return options;
        }
    }
}


================================================
FILE: src/Common.props
================================================
<Project>
  <!-- Common settings for projects -->
  <PropertyGroup>
    <LangVersion>latest</LangVersion>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>

  <!-- Common package properties -->
  <PropertyGroup>
    <PackageReadmeFile>Package-README.md</PackageReadmeFile>
    <PackageLicenseFile>LICENSE</PackageLicenseFile>
    
    <PackageProjectUrl>https://github.com/tintoy/dotnet-kube-client/</PackageProjectUrl>

    <PackageTags>Kubernetes;Client;kubectl</PackageTags>

    <RepositoryType>git</RepositoryType>
    <RepositoryUrl>https://github.com/tintoy/dotnet-kube-client</RepositoryUrl>

    <PackageOutputPath>$(MSBuildThisFileDirectory)/../out/packages</PackageOutputPath>
  </PropertyGroup>

  <!-- Common package files -->
  <ItemGroup>
    <None Include="$(MSBuildThisFileDirectory)/../$(PackageReadmeFile)" Pack="true" PackagePath="/"/>
    <None Include="$(MSBuildThisFileDirectory)/../$(PackageLicenseFile)" Pack="true" PackagePath="/"/>
  </ItemGroup>
</Project>


================================================
FILE: src/KubeClient/ApiMetadata/ApiMetadataExtensions.cs
================================================
using KubeClient.Models;
using System;
using System.Linq;

namespace KubeClient.ApiMetadata
{
    /// <summary>
    ///     Extension methods for working with Kubernetes API metadata.
    /// </summary>
    public static class ApiMetadataExtensions
    {
        /// <summary>
        ///     Determine whether a Kubernetes API path supports the specified well-known action.
        /// </summary>
        /// <param name="apiPathMetadata">
        ///     The API path metadata.
        /// </param>
        /// <param name="action">
        ///     A <see cref="KubeAction"/> representing the target action.
        /// </param>
        /// <returns>
        ///     <c>true</c>, if the path supports the specified action; otherwise, <c>false</c>.
        /// </returns>
        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
{
    /// <summary>
    ///     Metadata for a Kubernetes resource API.
    /// </summary>
    public class KubeApiMetadata
    {
        /// <summary>
        ///     Create new Kubernetes resource API metadata.
        /// </summary>
        /// <param name="kind">
        ///     The resource kind.
        /// </param>
        /// <param name="apiGroup">
        ///     The resource API group.
        /// </param>
        /// <param name="apiVersion">
        ///     The resource API version.
        /// </param>
        /// <param name="singularName">
        ///     The singular name (if any) for the resource (e.g. "NetworkPolicy").
        /// </param>
        /// <param name="pluralName">
        ///     The plural name (if any) for the resource (e.g. "NetworkPolicies").
        /// </param>
        /// <param name="shortNames">
        ///     Short names (if any) for the resource.
        /// </param>
        /// <param name="isPreferredVersion">
        ///     Is this the currently-preferred version of the API?
        /// </param>
        /// <param name="paths">
        ///     The metadata for the API's paths.
        /// 
        ///     At least 1 path must be supplied.
        /// </param>
        public KubeApiMetadata(string kind, string apiGroup, string apiVersion, string singularName, string pluralName, IReadOnlyCollection<string> shortNames, bool isPreferredVersion, IReadOnlyList<KubeApiPathMetadata> 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;
        }

        /// <summary>
        ///     The resource kind.
        /// </summary>
        public string Kind { get; }

        /// <summary>
        ///     The resource API group.
        /// </summary>
        public string ApiGroup { get; }

        /// <summary>
        ///     The resource API version.
        /// </summary>
        public string ApiVersion { get; }

        /// <summary>
        ///     The singular name (if any) for the resource (e.g. "NetworkPolicy").
        /// </summary>
        public string SingularName { get; }

        /// <summary>
        ///     The plural name (if any) for the resource (e.g. "NetworkPolicies").
        /// </summary>
        public string PluralName { get; }

        /// <summary>
        ///     Short names (if any) for the resource.
        /// </summary>
        public IReadOnlyCollection<string> ShortNames { get; }

        /// <summary>
        ///     Is this the currently-preferred version of the API?
        /// </summary>
        public bool IsPreferredVersion { get; }

        /// <summary>
        ///     The metadata for the API's primary (non-namespaced) path.
        /// </summary>
        public string PrimaryPath => PrimaryPathMetadata?.Path;

        /// <summary>
        ///     The metadata for the API's primary namespaced path.
        /// </summary>
        public string PrimaryNamespacedPath => PrimaryNamespacedPathMetadata?.Path;

        /// <summary>
        ///     The metadata for the API's primary (non-namespaced) path.
        /// </summary>
        public KubeApiPathMetadata PrimaryPathMetadata => PathMetadata.FirstOrDefault(path => !path.IsNamespaced);

        /// <summary>
        ///     The metadata for the API's primary namespaced path.
        /// </summary>
        public KubeApiPathMetadata PrimaryNamespacedPathMetadata => PathMetadata.FirstOrDefault(path => path.IsNamespaced);

        /// <summary>
        ///     The metadata for the API's path(s).
        /// </summary>
        public IReadOnlyList<KubeApiPathMetadata> 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;

    /// <summary>
    ///     A cache for Kubernetes resource API metadata.
    /// </summary>
    public sealed class KubeApiMetadataCache
    {
        /// <summary>
        ///     Well-known group prefixes.
        /// </summary>
        public static readonly IReadOnlyCollection<string> ApiGroupPrefixes = new string[] { "api", "apis" };

        /// <summary>
        ///     An object used to synchronise access to cache state.
        /// </summary>
        readonly object _stateLock = new object();

        /// <summary>
        ///     Model metadata, keyed by apiVersion/Kind, singular name, and short names.
        /// </summary>
        readonly Dictionary<string, KubeApiMetadata> _metadata = new Dictionary<string, KubeApiMetadata>();

        /// <summary>
        ///     Create a new Kubernetes resource metadata cache.
        /// </summary>
        public KubeApiMetadataCache()
        {
        }

        /// <summary>
        ///     Is the cache currently empty?
        /// </summary>
        public bool IsEmpty
        {
            get
            {
                lock (_stateLock)
                {
                    return _metadata.Count == 0;
                }
            }
        }

        /// <summary>
        ///     Retrieve metadata for a Kubernetes resource API.
        /// </summary>
        /// <typeparam name="TModel">
        ///     The type of model that represents the resource.
        /// </typeparam>
        /// <returns>
        ///     The API metadata, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        public KubeApiMetadata Get<TModel>()
            where TModel : KubeObjectV1
        {
            return Get(
                typeof(TModel)
            );
        }

        /// <summary>
        ///     Retrieve metadata for a Kubernetes resource API.
        /// </summary>
        /// <param name="modelType">
        ///     The CLR <see cref="Type"/> of the model that represents the resource.
        /// </param>
        /// <returns>
        ///     The API metadata, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        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);
        }

        /// <summary>
        ///     Retrieve metadata for a Kubernetes resource API.
        /// </summary>
        /// <param name="name">
        ///     The resource singular-name or short-name.
        /// </param>
        /// <returns>
        ///     The API metadata, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        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;
        }

        /// <summary>
        ///     Retrieve metadata for a Kubernetes resource API.
        /// </summary>
        /// <param name="kind">
        ///     The resource kind.
        /// </param>
        /// <param name="apiGroup">
        ///     The resource API group name.
        /// </param>
        /// <param name="apiVersion">
        ///     The resource API version.
        /// </param>
        /// <returns>
        ///     The API metadata, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        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;
        }

        /// <summary>
        ///     Retrieve metadata for a Kubernetes resource API.
        /// </summary>
        /// <param name="kind">
        ///     The resource kind.
        /// </param>
        /// <param name="apiVersion">
        ///     The resource API version.
        /// </param>
        /// <returns>
        ///     The API metadata, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        public KubeApiMetadata Get(string kind, string apiVersion) => Get(kind, apiGroup: null, apiVersion);

        /// <summary>
        ///     Retrieve the primary path of a Kubernetes resource API.
        /// </summary>
        /// <typeparam name="TModel">
        ///     The type of model that represents the resource.
        /// </typeparam>
        /// <returns>
        ///     The API's primary (i.e. first) path, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        public string GetPrimaryPath<TModel>()
            where TModel : KubeObjectV1
        {
            return GetPrimaryPath(
                typeof(TModel)
            );
        }

        /// <summary>
        ///     Retrieve the primary path of a Kubernetes resource API.
        /// </summary>
        /// <param name="modelType">
        ///     The CLR <see cref="Type"/> of the model that represents the resource.
        /// </param>
        /// <returns>
        ///     The API's primary (i.e. first) path, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        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);
        }

        /// <summary>
        ///     Retrieve the primary path of a Kubernetes resource API.
        /// </summary>
        /// <param name="name">
        ///     The resource singular-name or short-name.
        /// </param>
        /// <returns>
        ///     The API metadata, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        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;
        }

        /// <summary>
        ///     Retrieve the primary path of a Kubernetes resource API.
        /// </summary>
        /// <param name="kind">
        ///     The resource kind.
        /// </param>
        /// <param name="apiVersion">
        ///     The resource API version.
        /// </param>
        /// <returns>
        ///     The API's primary (i.e. first) path, or <c>null</c> if no metadata was found for the API.
        /// </returns>
        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;
            }
        }

        /// <summary>
        ///     Clear the cache.
        /// </summary>
        public void Clear()
        {
            lock (_stateLock)
            {
                _metadata.Clear();
            }
        }

        /// <summary>
        ///     Populate the cache from model metadata.
        /// </summary>
        /// <param name="assembly">
        ///     The assembly containing model types to process.
        /// </param>
        /// <param name="clearExisting">
        ///     Remove existing metadata from the cache?
        /// </param>
        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<KubeApiMetadata>();
            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<string, List<KubeAction>> pathActions = new Dictionary<string, List<KubeAction>>();

                KubeApiAttribute[] apiAttributes = modelType.GetTypeInfo().GetCustomAttributes<KubeApiAttribute>().ToArray();
                foreach (KubeApiAttribute apiAttribute in apiAttributes)
                {
                    foreach (string path in apiAttribute.Paths)
                    {
                        List<KubeAction> actions;
                        if (!pathActions.TryGetValue(path, out actions))
                        {
                            actions = new List<KubeAction>();
                            pathActions.Add(path, actions);
                        }

                        actions.Add(apiAttribute.Action);
                    }
                }

                var apiPaths = new List<KubeApiPathMetadata>();
                foreach (string path in pathActions.Keys.OrderBy(path => path))
                {
                    bool isNamespaced = path.Contains("namespace");

                    List<KubeAction> 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);
        }

        /// <summary>
        ///     Populate the cache from the Kubernetes API.
        /// </summary>
        /// <param name="kubeClient">
        ///     The <see cref="KubeClient"/> used to retrieve API metadata.
        /// </param>
        /// <param name="clearExisting">
        ///     Remove existing metadata from the cache?
        /// </param>
        /// <param name="cancellationToken">
        ///     An optional <see cref="CancellationToken"/> that can be used to cancel the operation.
        /// </param>
        /// <returns>
        ///     A <see cref="Task"/> representing the asynchronous operation.
        /// </returns>
        public async Task Load(IKubeApiClient kubeClient, bool clearExisting = false, CancellationToken cancellationToken = default)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            var loadedMetadata = new List<KubeApiMetadata>();

            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<GroupVersionForDiscoveryV1> groupVersions;
                    if (apiGroupPrefix == "api")
                    {
                        groupVersions = new List<GroupVersionForDiscoveryV1>
                        {
                            new GroupVersionForDiscoveryV1
                            {
                                GroupVersion = "v1"
                            }
                        };
                    }
                    else
                        groupVersions = apiGroup.Versions;

                    var metadataLoaders = new List<Task<List<KubeApiMetadata>>>();

                    foreach (GroupVersionForDiscoveryV1 groupVersion in groupVersions)
                    {
                        metadataLoaders.Add(
                            LoadGroupApis(kubeClient, apiGroupPrefix, apiGroup, groupVersion, cancellationToken)
                        );
                    }

                    List<KubeApiMetadata>[] completedLoads = await Task.WhenAll(metadataLoaders);
                    foreach (List<KubeApiMetadata> completedLoad in completedLoads)
                        loadedMetadata.AddRange(completedLoad);
                }
            }

            cancellationToken.ThrowIfCancellationRequested();

            Cache(loadedMetadata, clearExisting);
        }

        /// <summary>
        ///     Load metadata for the specified group of resource APIs.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client used to load API metadata.
        /// </param>
        /// <param name="apiGroupPrefix">
        ///     The API group prefix (usually "api" or "apis").
        /// </param>
        /// <param name="apiGroup">
        ///     The API group.
        /// </param>
        /// <param name="groupVersion">
        ///     The current API group version to examine.
        /// </param>
        /// <param name="cancellationToken">
        ///     A <see cref="CancellationToken"/> that can be used to cancel the operation.
        /// </param>
        /// <returns>
        ///     A list of <see cref="KubeApiMetadata"/> representing the group's APIs.
        /// </returns>
        async Task<List<KubeApiMetadata>> 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<KubeApiMetadata>();

            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<string> shortNames = new string[0];

                var apiPaths = new List<KubeApiPathMetadata>();

                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;
        }

        /// <summary>
        ///     Retrieve all keys for which the cache contains metadata.
        /// </summary>
        /// <returns>
        ///     An array of strings representing the cache keys.
        /// </returns>
        public string[] GetCacheKeys()
        {
            lock (_stateLock)
            {
                return _metadata.Keys.ToArray();
            }
        }

        /// <summary>
        ///     Retrieve all resource kinds for which the cache contains metadata.
        /// </summary>
        /// <returns>
        ///     An array of (kind, apiVersion) tuples.
        /// </returns>
        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();
            }
        }

        /// <summary>
        ///     Populate the cache using the specified metadata.
        /// </summary>
        /// <param name="loadedMetadata">
        ///     API metadata to be added to the cache.
        /// </param>
        /// <param name="clearExisting">
        ///     Remove existing metadata from the cache?
        /// </param>
        void Cache(IEnumerable<KubeApiMetadata> 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;
                    }
                }
            }
        }

        /// <summary>
        ///     Create a cache key based on the specified resource kind and API group / version.
        /// </summary>
        /// <param name="kind">
        ///     The Kubernetes resource kind (e.g. "KafkaConnector").
        /// </param>
        /// <param name="apiGroup">
        ///     The Kubernetes resource API group (e.g. "strimzi.kafka.io").
        /// </param>
        /// <param name="apiVersion">
        ///     The Kubernetes resource API version (e.g. "v1beta2").
        /// </param>
        /// <returns>
        ///     The cache key.
        /// </returns>
        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
{
    /// <summary>
    ///     Metadata for a specific path in a Kubernetes resource API.
    /// </summary>
    public class KubeApiPathMetadata
    {
        /// <summary>
        ///     Create new Kubernetes resource API path metadata.
        /// </summary>
        /// <param name="path">
        ///     The API path.
        /// </param>
        /// <param name="isNamespaced">
        ///     Is the path namespaced?
        /// </param>
        /// <param name="verbs">
        ///     The verbs supported on the path.
        /// </param>
        public KubeApiPathMetadata(string path, bool isNamespaced, IReadOnlyCollection<string> 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;
        }

        /// <summary>
        ///     The API path.
        /// </summary>
        public string Path { get; }

        /// <summary>
        ///     Is the path namespaced?
        /// </summary>
        public bool IsNamespaced { get; }

        /// <summary>
        ///     The verbs supported on the path.
        /// </summary>
        public IReadOnlyCollection<string> Verbs { get; }
    }
}


================================================
FILE: src/KubeClient/ApiMetadata/KubeApiVerb.cs
================================================
namespace KubeClient.ApiMetadata
{
    /// <summary>
    ///     Well-known verbs supported by Kubernetes resource APIs.
    /// </summary>
    public static class KubeApiVerb
    {
        /// <summary>
        ///     Create a resource.
        /// </summary>
        public const string Create = "create";

        /// <summary>
        ///     Delete a resource.
        /// </summary>
        public const string Delete = "delete";

        /// <summary>
        ///     Delete a collection of resources.
        /// </summary>
        public const string DeleteCollection = "deletecollection";

        /// <summary>
        ///     Retrieve a single resource.
        /// </summary>
        public const string Get = "get";

        /// <summary>
        ///     List resources.
        /// </summary>
        public const string List = "list";

        /// <summary>
        ///     Patch (selectively update) a resource.
        /// </summary>
        public const string Patch = "patch";

        /// <summary>
        ///     Update (replace) a resource.
        /// </summary>
        public const string Update = "update";

        /// <summary>
        ///     Watch a resource or resource collection for changes.
        /// </summary>
        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;

    /// <summary>
    ///     Extension methods for creating Kubernetes resource clients for a <see cref="KubeApiClient"/>.
    /// </summary>
    public static class ClientFactoryExtensions
    {
        /// <summary>
        ///     Get the Kubernetes Namespaces (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static INamespaceClientV1 NamespacesV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<INamespaceClientV1>(
                client => new NamespaceClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes ConfigMaps (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IConfigMapClientV1 ConfigMapsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IConfigMapClientV1>(
                client => new ConfigMapClientV1(client)
            );
        }
        /// <summary>
        ///     Get the Kubernetes DaemonSets (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IDaemonSetClientV1 DaemonSetsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IDaemonSetClientV1>(
                client => new DaemonSetClientV1(client)
            );
        }
        /// <summary>
        ///     Get the Kubernetes Deployments (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IDeploymentClientV1 DeploymentsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IDeploymentClientV1>(
                client => new DeploymentClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Deployments (v1beta1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IDeploymentClientV1Beta1 DeploymentsV1Beta1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IDeploymentClientV1Beta1>(
                client => new DeploymentClientV1Beta1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Jobs (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IJobClientV1 JobsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IJobClientV1>(
                client => new JobClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Nodes (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static INodeClientV1 NodesV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<INodeClientV1>(
                client => new NodeClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Events (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IEventClientV1 EventsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IEventClientV1>(
                client => new EventClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Ingresses (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IIngressClientV1Beta1 IngressesV1Beta1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IIngressClientV1Beta1>(
                client => new IngressClientV1Beta1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes PersistentVolumes (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IPersistentVolumeClientV1 PersistentVolumesV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IPersistentVolumeClientV1>(
                client => new PersistentVolumeClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes PersistentVolumeClaims (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IPersistentVolumeClaimClientV1 PersistentVolumeClaimsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IPersistentVolumeClaimClientV1>(
                client => new PersistentVolumeClaimClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Pods (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IPodClientV1 PodsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IPodClientV1>(
                client => new PodClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Roles (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IRoleClientV1 RolesV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IRoleClientV1>(
                client => new RoleClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Role Bindings (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IRoleBindingClientV1 RoleBindingsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IRoleBindingClientV1>(
                client => new RoleBindingClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes Secrets (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static ISecretClientV1 SecretsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<ISecretClientV1>(
                client => new SecretClientV1(client)
            );
        }
        
        /// <summary>
        ///     Get the Kubernetes Service Accounts (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IServiceAccountClientV1 ServiceAccountsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IServiceAccountClientV1>(
                client => new ServiceAccountClientV1(client)
            );
        }
        
        /// <summary>
        ///     Get the Kubernetes Services (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IServiceClientV1 ServicesV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IServiceClientV1>(
                client => new ServiceClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes ReplicationControllers (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IReplicationControllerClientV1 ReplicationControllersV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IReplicationControllerClientV1>(
                client => new ReplicationControllerClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes ReplicaSets (v1beta1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IReplicaSetClientV1 ReplicaSetsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IReplicaSetClientV1>(
                client => new ReplicaSetClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes APIGroups (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IAPIGroupClientV1 APIGroupsV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IAPIGroupClientV1>(
                client => new APIGroupClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes APIResources (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IAPIResourceClientV1 APIResourcesV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IAPIResourceClientV1>(
                client => new APIResourceClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes NetworkPolicy (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static INetworkPolicyClientV1 NetworkPolicyV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<INetworkPolicyClientV1>(
                client => new NetworkPolicyClientV1(client)
            );
        }

        /// <summary>
        ///     Get the Kubernetes StatefulSets (v1) resource client.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IStatefulSetClientV1 StatefulSetV1(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.ResourceClient<IStatefulSetClientV1>(
                client => new StatefulSetClientV1(client)
            );
        }

        /// <summary>
        ///     Get a client for dynamic access to Kubernetes resource APIs.
        /// </summary>
        /// <param name="kubeClient">
        ///     The Kubernetes API client.
        /// </param>
        /// <returns>
        ///     The resource client.
        /// </returns>
        public static IDynamicResourceClient Dynamic(this IKubeApiClient kubeClient)
        {
            if (kubeClient == null)
                throw new ArgumentNullException(nameof(kubeClient));

            return kubeClient.Reso
Download .txt
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
Download .txt
Showing preview only (386K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3191 symbols across 1144 files)

FILE: samples/ConfigFromConfigMap/Program.cs
  class Program (line 19) | static class Program
    method Main (line 35) | static async Task<int> Main(string[] commandLineArguments)
    method Dump (line 211) | static void Dump(IConfiguration configuration)
    method ConfigureLogging (line 229) | static ServiceProvider ConfigureLogging(ProgramOptions options)
    method Program (line 270) | static Program()
    class ExitCodes (line 280) | public static class ExitCodes
  class ConfigurationExtensions (line 302) | public static class ConfigurationExtensions
    method OnReload (line 316) | public static IDisposable OnReload(this IConfiguration configuration, ...
    method OnReload (line 335) | public static IDisposable OnReload(this IConfiguration configuration, ...

FILE: samples/ConfigFromConfigMap/ProgramOptions.cs
  class ProgramOptions (line 8) | class ProgramOptions
    method Parse (line 25) | public static ProgramOptions Parse(string[] commandLineArguments)

FILE: samples/DeploymentWithRollback/Program.cs
  class Program (line 17) | static class Program
    method Main (line 33) | static async Task<int> Main(string[] commandLineArguments)
    method CreateInitialDeployment (line 176) | static async Task<DeploymentV1> CreateInitialDeployment(IKubeApiClient...
    method UpdateDeployment (line 248) | static async Task<DeploymentV1> UpdateDeployment(IKubeApiClient client...
    method FindReplicaSetForRevision (line 285) | static async Task<ReplicaSetV1> FindReplicaSetForRevision(IKubeApiClie...
    method RollbackDeployment (line 320) | static async Task<DeploymentV1> RollbackDeployment(IKubeApiClient clie...
    method DoesDeploymentOwnReplicaSet (line 372) | static bool DoesDeploymentOwnReplicaSet(DeploymentV1 deployment, Repli...
    method ConfigureLogging (line 401) | static ServiceProvider ConfigureLogging(ProgramOptions options)
    method Program (line 442) | static Program()
    class ExitCodes (line 452) | public static class ExitCodes

FILE: samples/DeploymentWithRollback/ProgramOptions.cs
  class ProgramOptions (line 8) | class ProgramOptions
    method Parse (line 37) | public static ProgramOptions Parse(string[] commandLineArguments)

FILE: samples/ExtensionsSample/Program.cs
  class Program (line 13) | static class Program
    method Main (line 15) | static void Main()
  class Thing (line 30) | class Thing
  class NestedThing (line 36) | class NestedThing

FILE: samples/WatchEvents/Program.cs
  class Program (line 19) | static class Program
    method Main (line 35) | static async Task<int> Main(string[] commandLineArguments)
    method CreateEventProcessor (line 121) | static ActionBlock<EventV1> CreateEventProcessor(IKubeApiClient client)
    method ResolveRelatedResource (line 155) | static async Task ResolveRelatedResource(IKubeApiClient client, EventV...
    method ConfigureLogging (line 190) | static ServiceProvider ConfigureLogging(ProgramOptions options)
    method Program (line 231) | static Program()
    class ExitCodes (line 241) | public static class ExitCodes

FILE: samples/WatchEvents/ProgramOptions.cs
  class ProgramOptions (line 8) | class ProgramOptions
    method Parse (line 31) | public static ProgramOptions Parse(string[] commandLineArguments)

FILE: samples/noob-exec/Program.cs
  class Program (line 16) | static class Program
    method Main (line 32) | static async Task<int> Main(string[] commandLineArguments)
    method ConfigureLogging (line 160) | static ServiceProvider ConfigureLogging(ProgramOptions options)
    method Program (line 201) | static Program()
    class ExitCodes (line 211) | public static class ExitCodes

FILE: samples/noob-exec/ProgramOptions.cs
  class ProgramOptions (line 8) | class ProgramOptions
    method Parse (line 58) | public static ProgramOptions Parse(string[] commandLineArguments)

FILE: src/KubeClient.Core/IKubeApiClient.cs
  type IKubeApiClient (line 12) | public interface IKubeApiClient
    method GetClientOptions (line 41) | KubeClientOptions GetClientOptions();
    method ResourceClient (line 55) | TClient ResourceClient<TClient>(Func<IKubeApiClient, TClient> clientFa...

FILE: src/KubeClient.Core/K8sAnnotations.cs
  class K8sAnnotations (line 6) | public static class K8sAnnotations
    class Deployment (line 11) | public static class Deployment

FILE: src/KubeClient.Core/KubeClientConstants.cs
  class KubeClientConstants (line 6) | public static class KubeClientConstants

FILE: src/KubeClient.Core/KubeClientException.cs
  class KubeClientException (line 8) | public class KubeClientException
    method KubeClientException (line 22) | public KubeClientException(string message)
    method KubeClientException (line 36) | public KubeClientException(string message, Exception innerException)

FILE: src/KubeClient.Core/KubeClientOptions.cs
  class KubeClientOptions (line 14) | public class KubeClientOptions
    method KubeClientOptions (line 29) | public KubeClientOptions()
    method KubeClientOptions (line 39) | public KubeClientOptions(string apiEndPoint)
    method Clone (line 165) | public KubeClientOptions Clone()
    method CopyTo (line 180) | public void CopyTo(KubeClientOptions toOptions)
    method EnsureValid (line 212) | public KubeClientOptions EnsureValid()
    method FromPodServiceAccount (line 239) | public static KubeClientOptions FromPodServiceAccount(string serviceAc...
  type KubeAuthStrategy (line 278) | public enum KubeAuthStrategy

FILE: src/KubeClient.Core/ResourceClients/IKubeResourceClient.cs
  type IKubeResourceClient (line 6) | public interface IKubeResourceClient

FILE: src/KubeClient.Extensions.Configuration/ConfigMapConfigurationProvider.cs
  class ConfigMapConfigurationProvider (line 15) | sealed class ConfigMapConfigurationProvider
    method ConfigMapConfigurationProvider (line 59) | public ConfigMapConfigurationProvider(ConfigMapConfigurationSettings p...
    method Dispose (line 77) | public void Dispose()
    method Load (line 96) | public override void Load()
    method Load (line 124) | void Load(ConfigMapV1 configMap, bool isReload = false)
    method OnConfigMapChanged (line 155) | private void OnConfigMapChanged(IResourceEventV1<ConfigMapV1> configMa...

FILE: src/KubeClient.Extensions.Configuration/ConfigMapConfigurationSource.cs
  class ConfigMapConfigurationSource (line 11) | sealed class ConfigMapConfigurationSource
    method ConfigMapConfigurationSource (line 20) | public ConfigMapConfigurationSource(ConfigMapConfigurationSettings set...
    method Build (line 42) | public IConfigurationProvider Build(IConfigurationBuilder configuratio...

FILE: src/KubeClient.Extensions.Configuration/KubeClientConfigurationExtensions.cs
  class KubeClientConfigurationExtensions (line 11) | public static class KubeClientConfigurationExtensions
    method AddKubeConfigMap (line 40) | public static IConfigurationBuilder AddKubeConfigMap(this IConfigurati...
    method AddKubeConfigMap (line 79) | public static IConfigurationBuilder AddKubeConfigMap(this IConfigurati...
    method AddKubeSecret (line 115) | public static IConfigurationBuilder AddKubeSecret(this IConfigurationB...
    method AddKubeSecret (line 151) | public static IConfigurationBuilder AddKubeSecret(this IConfigurationB...

FILE: src/KubeClient.Extensions.Configuration/SecretConfigurationProvider.cs
  class SecretConfigurationProvider (line 16) | sealed class SecretConfigurationProvider
    method SecretConfigurationProvider (line 55) | public SecretConfigurationProvider(SecretConfigurationSettings provide...
    method Dispose (line 72) | public void Dispose()
    method Load (line 91) | public override void Load()
    method Load (line 117) | void Load(SecretV1 secret)
    method OnSecretChanged (line 166) | void OnSecretChanged(IResourceEventV1<SecretV1> secretEvent)

FILE: src/KubeClient.Extensions.Configuration/SecretConfigurationSource.cs
  class SecretConfigurationSource (line 11) | sealed class SecretConfigurationSource
    method SecretConfigurationSource (line 20) | public SecretConfigurationSource(SecretConfigurationSettings settings)
    method Build (line 42) | public IConfigurationProvider Build(IConfigurationBuilder configuratio...

FILE: src/KubeClient.Extensions.Configuration/Settings/ConfigMapConfigurationSettings.cs
  class ConfigMapConfigurationSettings (line 8) | public class ConfigMapConfigurationSettings
    method ConfigMapConfigurationSettings (line 33) | public ConfigMapConfigurationSettings(IKubeApiClient client, string co...

FILE: src/KubeClient.Extensions.Configuration/Settings/SecretConfigurationSettings.cs
  class SecretConfigurationSettings (line 8) | public class SecretConfigurationSettings
    method SecretConfigurationSettings (line 33) | public SecretConfigurationSettings(IKubeApiClient client, string secre...

FILE: src/KubeClient.Extensions.CustomResources.CodeGen/CodeGenHelper.cs
  class CodeGenHelper (line 22) | static class CodeGenHelper
    method IndentString (line 30) | public static string IndentString(int indent = 0) => new String(' ', i...
    method IndentText (line 32) | public static XmlTextSyntax IndentText(int indent = 0)
    method IndentedText (line 39) | public static XmlTextSyntax IndentedText(string text, int indent = 0)
    method GetLanguageName (line 52) | public static string GetLanguageName(this SyntaxGenerator syntaxGenera...
    method WithLeadingNewline (line 71) | public static TSyntax WithLeadingNewline<TSyntax>(this TSyntax syntaxN...
    method WithTrailingNewline (line 82) | public static TSyntax WithTrailingNewline<TSyntax>(this TSyntax syntax...
    method WithTrailingSpace (line 93) | public static SyntaxNode WithTrailingSpace(this SyntaxNode syntaxNode)
    method WithIndent (line 103) | public static TSyntax WithIndent<TSyntax>(this TSyntax node, int indent)
    method NamespaceImport (line 115) | public static SyntaxNode NamespaceImport(this SyntaxGenerator generato...
    method Namespace (line 130) | public static SyntaxNode Namespace(this SyntaxGenerator generator, str...
    method Namespace (line 144) | public static SyntaxNode Namespace(this SyntaxGenerator generator, str...
    method WithDocumentation (line 163) | public static TSyntax WithDocumentation<TSyntax>(this TSyntax syntaxNo...
    method WithDocumentation (line 177) | public static TSyntax WithDocumentation<TSyntax>(this TSyntax syntaxNo...
    method ListElement (line 201) | public static XmlElementSyntax ListElement(this SyntaxGenerator genera...
    method ListElement (line 214) | public static XmlElementSyntax ListElement(this SyntaxGenerator genera...
    method ListElement (line 227) | public static XmlElementSyntax ListElement(this SyntaxGenerator genera...

FILE: src/KubeClient.Extensions.CustomResources.CodeGen/ModelGeneratorV1.cs
  class ModelGeneratorV1 (line 24) | public static class ModelGeneratorV1
    class Attributes (line 29) | static class Attributes
      class CSharp (line 34) | public static class CSharp
    class Modifiers (line 48) | static class Modifiers
      class CSharp (line 53) | public static class CSharp
    class TypeReferences (line 65) | static class TypeReferences
      class CSharp (line 70) | public static class CSharp
    class FieldDeclarations (line 87) | static class FieldDeclarations
      class CSharp (line 92) | public static class CSharp
    method GenerateModels (line 152) | public static Project GenerateModels(KubeSchema schema, KubeResourceTy...
    method GenerateModels (line 198) | static Document GenerateModels(Project project, KubeModel model, IEnum...
    method GenerateResourceDeclarations (line 245) | static IEnumerable<SyntaxNode> GenerateResourceDeclarations(IEnumerabl...
    method GenerateComplexTypeDeclarations (line 308) | static IEnumerable<SyntaxNode> GenerateComplexTypeDeclarations(IEnumer...
    method GenerateProperties (line 352) | static IEnumerable<SyntaxNode> GenerateProperties(IEnumerable<KeyValue...
    method GetTypeReference (line 413) | static SyntaxNode GetTypeReference(KubeIntrinsicDataType intrinsicData...
    method GetDataType (line 453) | static SyntaxNode GetDataType(KubeDataType dataType, SyntaxGenerator s...
    method DiscoverComplexTypes (line 477) | static void DiscoverComplexTypes(KubeModel containingModel, HashSet<Ku...
    method DiscoverComplexTypes (line 507) | static void DiscoverComplexTypes(KubeComplexType containingType, HashS...
    method TryGetComplexType (line 544) | static bool TryGetComplexType(KubeDataType dataType, [NotNullWhen(retu...

FILE: src/KubeClient.Extensions.CustomResources.Schema/CustomResourceSchemaExtensions.cs
  class CustomResourceSchemaExtensions (line 9) | public static class CustomResourceSchemaExtensions
    method GenerateSpecificationSchema (line 23) | public static JSONSchemaPropsV1Beta1 GenerateSpecificationSchema<TSpec...
    method GenerateSpecificationSchema (line 44) | public static JSONSchemaPropsV1 GenerateSpecificationSchema<TSpecifica...

FILE: src/KubeClient.Extensions.CustomResources.Schema/JsonSchemaParserV1.cs
  class JsonSchemaParserV1 (line 17) | public static class JsonSchemaParserV1
    method BuildKubeSchema (line 31) | public static KubeSchema BuildKubeSchema(KubeApiMetadataCache apiMetad...
    method BuildKubeSchema (line 45) | public static KubeSchema BuildKubeSchema(KubeApiMetadataCache apiMetad...
    method ParseResourceType (line 103) | static KubeModel ParseResourceType(KubeResourceType resourceType, Kube...
    method ParseDataType (line 178) | static KubeDataType ParseDataType(KubeResourceType resourceType, Stack...
    method GetDataTypeName (line 323) | static string GetDataTypeName(KubeResourceType resourceType, Stack<str...
    method ParseApiMetadata (line 352) | static KubeResourceApis ParseApiMetadata(KubeResourceType resourceType...

FILE: src/KubeClient.Extensions.CustomResources.Schema/Models.cs
  type KubeResourceType (line 22) | public record class KubeResourceType(string? Group, string Version, stri...
  type KubeSchema (line 56) | public record class KubeSchema(ImmutableDictionary<KubeResourceType, Kub...
  type KubeModel (line 73) | public record class KubeModel(KubeResourceType ResourceType, string? Sum...
  type KubeComplexType (line 93) | public record class KubeComplexType(string Name, string? Summary, Immuta...
  type KubeModelProperty (line 128) | public record class KubeModelProperty(string Name, string? Summary, Kube...
  type KubeDataType (line 139) | public record class KubeDataType(string Name, string? Summary)
  type KubeIntrinsicDataType (line 189) | public record class KubeIntrinsicDataType(string Name)
  type KubeModelDataType (line 224) | public record class KubeModelDataType(KubeModel Model)
  type KubeComplexDataType (line 259) | public record class KubeComplexDataType(KubeComplexType ComplexType)
  type KubeDynamicObjectDataType (line 291) | public record class KubeDynamicObjectDataType()
  type KubeArrayDataType (line 320) | public record class KubeArrayDataType(KubeDataType ElementType)
  type KubeDictionaryDataType (line 355) | public record class KubeDictionaryDataType(KubeDataType ElementType)
  type KubeResourceApis (line 390) | public record class KubeResourceApis(KubeResourceApi PrimaryApi, Immutab...
  type KubeResourceApi (line 404) | public record class KubeResourceApi(string Path, bool IsNamespaced, Immu...
  type KubeResourceApiVerb (line 418) | public record class KubeResourceApiVerb(string Name, KubeAction KubeActi...

FILE: src/KubeClient.Extensions.CustomResources.Schema/SchemaConstants.cs
  class SchemaConstants (line 9) | static class SchemaConstants

FILE: src/KubeClient.Extensions.CustomResources.Schema/SchemaGeneratorV1.cs
  class SchemaGeneratorV1 (line 13) | public static class SchemaGeneratorV1
    method GenerateSchema (line 29) | public static JSONSchemaPropsV1 GenerateSchema<TModel>()
    method GenerateSchema (line 44) | public static JSONSchemaPropsV1 GenerateSchema(Type modelType)
    method GenerateEnumSchema (line 158) | static JSONSchemaPropsV1 GenerateEnumSchema(Type enumType)
    method GenerateArraySchema (line 185) | static JSONSchemaPropsV1 GenerateArraySchema(Type arrayType)
    method GenerateObjectSchema (line 208) | static JSONSchemaPropsV1 GenerateObjectSchema(Type objectType)
    method GetRequiredPropertyNames (line 251) | static IEnumerable<string> GetRequiredPropertyNames(Type objectType)

FILE: src/KubeClient.Extensions.CustomResources.Schema/SchemaGeneratorV1Beta1.cs
  class SchemaGeneratorV1Beta1 (line 17) | public static class SchemaGeneratorV1Beta1
    method GenerateSchema (line 33) | public static JSONSchemaPropsV1Beta1 GenerateSchema<TModel>()
    method GenerateSchema (line 48) | public static JSONSchemaPropsV1Beta1 GenerateSchema(Type modelType)
    method GenerateEnumSchema (line 162) | static JSONSchemaPropsV1Beta1 GenerateEnumSchema(Type enumType)
    method GenerateArraySchema (line 194) | static JSONSchemaPropsV1Beta1 GenerateArraySchema(Type arrayType)
    method GenerateObjectSchema (line 217) | static JSONSchemaPropsV1Beta1 GenerateObjectSchema(Type objectType)
    method GetRequiredPropertyNames (line 260) | static IEnumerable<string> GetRequiredPropertyNames(Type objectType)

FILE: src/KubeClient.Extensions.CustomResources.Schema/Utilities/NameWrangler.cs
  class NameWrangler (line 10) | static class NameWrangler
    method CapitalizeName (line 55) | public static string CapitalizeName(string name)
    method SanitizeName (line 73) | public static string SanitizeName(string name)

FILE: src/KubeClient.Extensions.CustomResources/CustomResourceClientFactoryExtensions.cs
  class CustomResourceClientFactoryExtensions (line 10) | public static class CustomResourceClientFactoryExtensions
    method CustomResourceDefinitionsV1Beta1 (line 21) | public static ICustomResourceDefinitionClientV1Beta1 CustomResourceDef...
    method CustomResourceDefinitionsV1 (line 40) | public static ICustomResourceDefinitionClientV1 CustomResourceDefiniti...

FILE: src/KubeClient.Extensions.CustomResources/CustomResourceDefinitionClientV1.cs
  class CustomResourceDefinitionClientV1 (line 13) | public class CustomResourceDefinitionClientV1
    method CustomResourceDefinitionClientV1 (line 22) | public CustomResourceDefinitionClientV1(IKubeApiClient client)
    method Get (line 39) | public async Task<CustomResourceDefinitionV1> Get(string name, Cancell...
    method List (line 75) | public async Task<CustomResourceDefinitionListV1> List(string? labelSe...
    method Watch (line 97) | public IObservable<IResourceEventV1<CustomResourceDefinitionV1>> Watch...
    method WatchAll (line 120) | public IObservable<IResourceEventV1<CustomResourceDefinitionV1>> Watch...
    method Create (line 143) | public async Task<CustomResourceDefinitionV1> Create(CustomResourceDef...
    method Delete (line 171) | public Task<KubeResourceResultV1<CustomResourceDefinitionV1>> Delete(s...
    class Requests (line 179) | static class Requests
  type ICustomResourceDefinitionClientV1 (line 206) | public interface ICustomResourceDefinitionClientV1
    method Get (line 220) | Task<CustomResourceDefinitionV1> Get(string name, CancellationToken ca...
    method List (line 244) | Task<CustomResourceDefinitionListV1> List(string? labelSelector = null...
    method Watch (line 255) | IObservable<IResourceEventV1<CustomResourceDefinitionV1>> Watch(string...
    method WatchAll (line 266) | IObservable<IResourceEventV1<CustomResourceDefinitionV1>> WatchAll(str...
    method Create (line 280) | Task<CustomResourceDefinitionV1> Create(CustomResourceDefinitionV1 new...
    method Delete (line 297) | Task<KubeResourceResultV1<CustomResourceDefinitionV1>> Delete(string n...

FILE: src/KubeClient.Extensions.CustomResources/CustomResourceDefinitionClientV1Beta1.cs
  class CustomResourceDefinitionClientV1Beta1 (line 13) | public class CustomResourceDefinitionClientV1Beta1
    method CustomResourceDefinitionClientV1Beta1 (line 22) | public CustomResourceDefinitionClientV1Beta1(IKubeApiClient client)
    method Get (line 39) | public async Task<CustomResourceDefinitionV1Beta1> Get(string name, Ca...
    method List (line 65) | public async Task<CustomResourceDefinitionListV1Beta1> List(string? la...
    method Watch (line 85) | public IObservable<IResourceEventV1<CustomResourceDefinitionV1Beta1>> ...
    method WatchAll (line 108) | public IObservable<IResourceEventV1<CustomResourceDefinitionV1Beta1>> ...
    method Create (line 131) | public async Task<CustomResourceDefinitionV1Beta1> Create(CustomResour...
    method Delete (line 159) | public Task<KubeResourceResultV1<CustomResourceDefinitionV1Beta1>> Del...
    class Requests (line 167) | static class Requests
  type ICustomResourceDefinitionClientV1Beta1 (line 194) | public interface ICustomResourceDefinitionClientV1Beta1
    method Get (line 208) | Task<CustomResourceDefinitionV1Beta1> Get(string name, CancellationTok...
    method List (line 222) | Task<CustomResourceDefinitionListV1Beta1> List(string? labelSelector =...
    method Watch (line 233) | IObservable<IResourceEventV1<CustomResourceDefinitionV1Beta1>> Watch(s...
    method WatchAll (line 244) | IObservable<IResourceEventV1<CustomResourceDefinitionV1Beta1>> WatchAl...
    method Create (line 258) | Task<CustomResourceDefinitionV1Beta1> Create(CustomResourceDefinitionV...
    method Delete (line 275) | Task<KubeResourceResultV1<CustomResourceDefinitionV1Beta1>> Delete(str...

FILE: src/KubeClient.Extensions.CustomResources/KubeCustomResourceV1.cs
  class KubeCustomResourceV1 (line 9) | public abstract class KubeCustomResourceV1
    method KubeCustomResourceV1 (line 15) | protected KubeCustomResourceV1()
    method KubeCustomResourceV1 (line 35) | protected KubeCustomResourceV1()
  class KubeCustomResourceV1 (line 28) | public abstract class KubeCustomResourceV1<TSpecification>
    method KubeCustomResourceV1 (line 15) | protected KubeCustomResourceV1()
    method KubeCustomResourceV1 (line 35) | protected KubeCustomResourceV1()

FILE: src/KubeClient.Extensions.CustomResources/KubeCustomResourceV1Beta1.cs
  class KubeCustomResourceV1Beta1 (line 9) | public abstract class KubeCustomResourceV1Beta1
    method KubeCustomResourceV1Beta1 (line 15) | protected KubeCustomResourceV1Beta1()
    method KubeCustomResourceV1Beta1 (line 35) | protected KubeCustomResourceV1Beta1()
  class KubeCustomResourceV1Beta1 (line 28) | public abstract class KubeCustomResourceV1Beta1<TSpecification>
    method KubeCustomResourceV1Beta1 (line 15) | protected KubeCustomResourceV1Beta1()
    method KubeCustomResourceV1Beta1 (line 35) | protected KubeCustomResourceV1Beta1()

FILE: src/KubeClient.Extensions.DataProtection/DataProtectionExtensions.cs
  class DataProtectionExtensions (line 13) | public static class DataProtectionExtensions
    method PersistKeysToKubeSecret (line 33) | public static IDataProtectionBuilder PersistKeysToKubeSecret(this IDat...
    method PersistKeysToKubeSecret (line 73) | public static IDataProtectionBuilder PersistKeysToKubeSecret(this IDat...

FILE: src/KubeClient.Extensions.DataProtection/KubeSecretXmlRepository.cs
  class KubeSecretXmlRepository (line 20) | public sealed class KubeSecretXmlRepository
    method KubeSecretXmlRepository (line 70) | public KubeSecretXmlRepository(IKubeApiClient client, string secretNam...
    method Dispose (line 92) | public void Dispose()
    method GetAllElements (line 114) | public IReadOnlyCollection<XElement> GetAllElements() => GetAllElement...
    method StoreElement (line 128) | public void StoreElement(XElement element, string friendlyName) => Sto...
    method LoadOrCreateSecret (line 133) | async Task LoadOrCreateSecret()
    method AttachWatcher (line 175) | void AttachWatcher()
    method OnKeyManagementSecretChanged (line 191) | void OnKeyManagementSecretChanged(IResourceEventV1<SecretV1> secretEvent)
    method StoreElementCore (line 238) | async Task StoreElementCore(XElement element, string friendlyName)
    method GetAllElementsCore (line 274) | IEnumerable<XElement> GetAllElementsCore()

FILE: src/KubeClient.Extensions.DependencyInjection/ClientRegistrationExtensions.cs
  class ClientRegistrationExtensions (line 13) | public static class ClientRegistrationExtensions
    method AddKubeClient (line 27) | public static IServiceCollection AddKubeClient(this IServiceCollection...
    method AddKubeClient (line 58) | public static IServiceCollection AddKubeClient(this IServiceCollection...
    method AddKubeClient (line 85) | public static IServiceCollection AddKubeClient(this IServiceCollection...
    method AddKubeClient (line 116) | public static IServiceCollection AddKubeClient(this IServiceCollection...
    method AddNamedKubeClients (line 142) | public static IServiceCollection AddNamedKubeClients(this IServiceColl...
    method ResolveWithPodServiceAccount (line 162) | static KubeApiClient ResolveWithPodServiceAccount(IServiceProvider ser...
    method ResolveWithDefaultOptions (line 181) | static KubeApiClient ResolveWithDefaultOptions(IServiceProvider servic...
    method BuildResolverWithOptions (line 202) | static Func<IServiceProvider, KubeApiClient> BuildResolverWithOptions(...
    method AddScopedPassThrough (line 234) | static IServiceCollection AddScopedPassThrough<TService, TImplementati...

FILE: src/KubeClient.Extensions.DependencyInjection/INamedKubeClients.cs
  type INamedKubeClients (line 8) | public interface INamedKubeClients
    method Get (line 19) | IKubeApiClient Get(string name);

FILE: src/KubeClient.Extensions.DependencyInjection/KubeClientOptionsRegistrationExtensions.cs
  class KubeClientOptionsRegistrationExtensions (line 13) | public static class KubeClientOptionsRegistrationExtensions
    method AddKubeClientOptions (line 27) | public static IServiceCollection AddKubeClientOptions(this IServiceCol...
    method AddKubeClientOptions (line 59) | public static IServiceCollection AddKubeClientOptions(this IServiceCol...
    method AddKubeClientOptionsFromKubeConfig (line 97) | public static IServiceCollection AddKubeClientOptionsFromKubeConfig(th...
    method AddKubeClientOptionsFromKubeConfig (line 142) | public static IServiceCollection AddKubeClientOptionsFromKubeConfig(th...
    method AddKubeClientOptionsFromKubeConfig (line 183) | public static IServiceCollection AddKubeClientOptionsFromKubeConfig(th...
    method AddKubeClientOptionsFromPodServiceAccount (line 225) | public static IServiceCollection AddKubeClientOptionsFromPodServiceAcc...
    method AddKubeClientOptionsFromPodServiceAccount (line 259) | public static IServiceCollection AddKubeClientOptionsFromPodServiceAcc...
    method GetKubeConfigFile (line 290) | static FileInfo GetKubeConfigFile(string? kubeConfigFileName)

FILE: src/KubeClient.Extensions.DependencyInjection/NamedKubeClients.cs
  class NamedKubeClients (line 11) | public class NamedKubeClients
    method NamedKubeClients (line 20) | public NamedKubeClients(IServiceProvider serviceProvider)
    method Get (line 42) | public IKubeApiClient Get(string name)

FILE: src/KubeClient.Extensions.KubeConfig/CryptoHelper.cs
  class CryptoHelper (line 22) | static class CryptoHelper
    method ToNativeX509Certificate (line 33) | public static X509Certificate2 ToNativeX509Certificate(this BCX509Cert...
    method GetThumbprint (line 56) | public static string GetThumbprint(this BCX509Certificate certificate)
    method BuildPfx (line 82) | public static byte[] BuildPfx(string certificatePem, string keyPem, st...
    method EnumeratePemObjects (line 135) | public static IEnumerable<object> EnumeratePemObjects(string pemPasswo...
    method EnumeratePemObjects (line 149) | public static IEnumerable<object> EnumeratePemObjects(string pemPasswo...
    class StaticPasswordStore (line 178) | class StaticPasswordStore
      method StaticPasswordStore (line 192) | public StaticPasswordStore(string password)
      method GetPassword (line 206) | public char[] GetPassword() => _password.ToCharArray();

FILE: src/KubeClient.Extensions.KubeConfig/K8sConfig.cs
  class K8sConfig (line 16) | public class K8sConfig
    method Locate (line 60) | public static string Locate()
    method Load (line 89) | public static K8sConfig Load()
    method Load (line 103) | public static K8sConfig Load(string configFile) => Load(new FileInfo(c...
    method Load (line 114) | public static K8sConfig Load(FileInfo configFile)
    method ToKubeClientOptions (line 146) | public KubeClientOptions ToKubeClientOptions(string kubeContextName = ...
    method ConfigureKubeClientOptions (line 170) | public KubeClientOptions ConfigureKubeClientOptions(KubeClientOptions ...

FILE: src/KubeClient.Extensions.KubeConfig/K8sConfigException.cs
  class K8sConfigException (line 8) | public class K8sConfigException
    method K8sConfigException (line 17) | public K8sConfigException(string message)
    method K8sConfigException (line 31) | public K8sConfigException(string message, Exception innerException)

FILE: src/KubeClient.Extensions.KubeConfig/Models/AuthProviderConfig.cs
  class AuthProviderConfig (line 10) | public class AuthProviderConfig

FILE: src/KubeClient.Extensions.KubeConfig/Models/Cluster.cs
  class Cluster (line 8) | public class Cluster

FILE: src/KubeClient.Extensions.KubeConfig/Models/ClusterConfig.cs
  class ClusterConfig (line 11) | public class ClusterConfig
    method GetCACertificate (line 43) | public X509Certificate2 GetCACertificate()

FILE: src/KubeClient.Extensions.KubeConfig/Models/Context.cs
  class Context (line 8) | public class Context
  class ContextConfig (line 26) | public class ContextConfig

FILE: src/KubeClient.Extensions.KubeConfig/Models/CredentialPluginConfig.cs
  class CredentialPluginConfig (line 10) | public class CredentialPluginConfig
    method ShouldSerializeEnvironmentVariables (line 39) | public bool ShouldSerializeEnvironmentVariables() => EnvironmentVariab...
    method ShouldSerializeArguments (line 53) | public bool ShouldSerializeArguments() => Arguments.Count > 0;

FILE: src/KubeClient.Extensions.KubeConfig/Models/UserIdentity.cs
  class UserIdentity (line 8) | public class UserIdentity

FILE: src/KubeClient.Extensions.KubeConfig/Models/UserIdentityConfig.cs
  class UserIdentityConfig (line 12) | public class UserIdentityConfig
    method GetRawToken (line 77) | public string GetRawToken()
    method GetClientCertificate (line 104) | public X509Certificate2 GetClientCertificate()

FILE: src/KubeClient.Extensions.WebSockets/K8sChannelProtocol.cs
  class K8sChannelProtocol (line 6) | public static class K8sChannelProtocol
  class K8sChannel (line 50) | public static class K8sChannel

FILE: src/KubeClient.Extensions.WebSockets/K8sMultiplexer.cs
  class K8sMultiplexer (line 24) | public sealed class K8sMultiplexer
    method K8sMultiplexer (line 100) | public K8sMultiplexer(WebSocket socket, byte[] inputStreamIndexes, byt...
    method Dispose (line 137) | public void Dispose()
    method GetInputStream (line 204) | public Stream GetInputStream(byte streamIndex)
    method GetOutputStream (line 221) | public Stream GetOutputStream(byte streamIndex)
    method Start (line 232) | public void Start()
    method Shutdown (line 252) | public async Task Shutdown(CancellationToken cancellation = default)
    method EnqueueSend (line 314) | Task EnqueueSend(byte streamIndex, ArraySegment<byte> data, Cancellati...
    method ReceivePump (line 335) | async Task ReceivePump()
    method SendPump (line 493) | async Task SendPump()
    method CreateReadBuffer (line 565) | ArraySegment<byte> CreateReadBuffer() => new ArraySegment<byte>(
    method DiscardMessageRemainder (line 583) | async Task DiscardMessageRemainder(ArraySegment<byte> buffer, Cancella...
    class PendingSend (line 593) | class PendingSend // TODO: Include stream index here and let the multi...
      method PendingSend (line 607) | public PendingSend(byte streamIndex, ArraySegment<byte> data, Cancel...

FILE: src/KubeClient.Extensions.WebSockets/K8sMultiplexerChannelExtensions.cs
  class K8sMultiplexerChannelExtensions (line 9) | public static class K8sMultiplexerChannelExtensions
    method GetStdIn (line 20) | public static Stream GetStdIn(this K8sMultiplexer multiplexer)
    method GetStdOut (line 37) | public static Stream GetStdOut(this K8sMultiplexer multiplexer)
    method GetStdErr (line 54) | public static Stream GetStdErr(this K8sMultiplexer multiplexer)

FILE: src/KubeClient.Extensions.WebSockets/KubeClientExtensions.cs
  class KubeClientExtensions (line 20) | public static class KubeClientExtensions
    method ApplyClientOptions (line 32) | public static void ApplyClientOptions(this  ClientWebSocketOptions soc...
    method ConnectWebSocket (line 102) | public static Task<WebSocket> ConnectWebSocket(this IKubeApiClient cli...
    method ConnectWebSocket (line 128) | public static async Task<WebSocket> ConnectWebSocket(this IKubeApiClie...
    method ConnectWebSocket (line 214) | public static Task<WebSocket> ConnectWebSocket<TParameters>(this IKube...
    method ConnectWebSocket (line 262) | public static Task<WebSocket> ConnectWebSocket(this IKubeApiClient cli...
    method Multiplexed (line 297) | public static K8sMultiplexer Multiplexed(this WebSocket websocket, byt...
    method Multiplexed (line 341) | public static async Task<K8sMultiplexer> Multiplexed(this Task<WebSock...

FILE: src/KubeClient.Extensions.WebSockets/LogEventIds.cs
  class EventIds (line 8) | static class EventIds
    class K8sMultiplexer (line 13) | public static class K8sMultiplexer

FILE: src/KubeClient.Extensions.WebSockets/ResourceClientWebSocketExtensions.cs
  class ResourceClientWebSocketExtensions (line 14) | public static class ResourceClientWebSocketExtensions
    method ExecAndConnect (line 56) | public static Task<K8sMultiplexer> ExecAndConnect(this IPodClientV1 po...
    method ExecAndConnectRaw (line 120) | public static async Task<WebSocket> ExecAndConnectRaw(this IPodClientV...

FILE: src/KubeClient.Extensions.WebSockets/Streams/K8sMultiplexedReadStream.cs
  class K8sMultiplexedReadStream (line 18) | sealed class K8sMultiplexedReadStream
    method K8sMultiplexedReadStream (line 58) | public K8sMultiplexedReadStream(byte streamIndex, int maxPendingBytes,...
    method Dispose (line 77) | protected override void Dispose(bool disposing)
    method CheckDisposed (line 99) | void CheckDisposed()
    method Read (line 170) | public override int Read(byte[] buffer, int offset, int count)
    method ReadAsync (line 224) | public override async Task<int> ReadAsync(byte[] buffer, int offset, i...
    method Flush (line 266) | public override void Flush() => throw new NotSupportedException("The s...
    method Seek (line 280) | public override long Seek(long offset, SeekOrigin origin) => throw new...
    method SetLength (line 288) | public override void SetLength(long value) => throw new NotSupportedEx...
    method Write (line 302) | public override void Write(byte[] buffer, int offset, int count) => th...
    method AddPendingRead (line 310) | internal void AddPendingRead(ArraySegment<byte> data)
    method Complete (line 344) | internal void Complete()
    method Fault (line 366) | internal void Fault(Exception exception)
    method Consume (line 391) | void Consume(PendingRead pending)
    class PendingRead (line 409) | class PendingRead
      method PendingRead (line 422) | public PendingRead(ArraySegment<byte> data)
      method DrainTo (line 452) | public int DrainTo(byte[] buffer, int offset)
      method Release (line 479) | public void Release()

FILE: src/KubeClient.Extensions.WebSockets/Streams/K8sMultiplexedWriteStream.cs
  class K8sMultiplexedWriteStream (line 15) | sealed class K8sMultiplexedWriteStream
    method K8sMultiplexedWriteStream (line 30) | public K8sMultiplexedWriteStream(byte streamIndex, Func<byte, ArraySeg...
    method Flush (line 83) | public override void Flush()
    method Write (line 99) | public override void Write(byte[] buffer, int offset, int count)
    method WriteAsync (line 121) | public override async Task WriteAsync(byte[] buffer, int offset, int c...
    method Seek (line 138) | public override long Seek(long offset, SeekOrigin origin) => throw new...
    method SetLength (line 146) | public override void SetLength(long value) => throw new NotSupportedEx...
    method Read (line 163) | public override int Read(byte[] buffer, int offset, int count) => thro...

FILE: src/KubeClient.Extensions.WebSockets/Utilities.cs
  class Utilities (line 10) | static class Utilities
    method DropLeft (line 24) | public static ArraySegment<T> DropLeft<T>(this ArraySegment<T> arraySe...
    method DropRight (line 47) | public static ArraySegment<T> DropRight<T>(this ArraySegment<T> arrayS...
    method Slice (line 70) | public static ArraySegment<T> Slice<T>(this ArraySegment<T> arraySegme...
    method Slice (line 87) | public static ArraySegment<T> Slice<T>(this ArraySegment<T> arraySegme...
    method Release (line 110) | public static ArraySegment<T> Release<T>(this ArraySegment<T> arraySeg...
    method WaitOne (line 130) | public static bool WaitOne(this WaitHandle waitHandle, CancellationTok...
    method WaitOne (line 155) | public static bool WaitOne(this WaitHandle waitHandle, TimeSpan timeou...

FILE: src/KubeClient.Http/ClientExtensions.Streamed.cs
  class ClientExtensions (line 10) | public static partial class ClientExtensions
    method GetStreamedAsync (line 29) | public static async Task<HttpResponseMessage> GetStreamedAsync(this Ht...

FILE: src/KubeClient.Http/ClientExtensions.cs
  class ClientExtensions (line 12) | public static partial class ClientExtensions
    method HeadAsync (line 31) | public static async Task<HttpResponseMessage> HeadAsync(this HttpClien...
    method GetAsync (line 57) | public static async Task<HttpResponseMessage> GetAsync(this HttpClient...
    method PostAsync (line 86) | public static async Task<HttpResponseMessage> PostAsync(this HttpClien...
    method PutAsync (line 115) | public static async Task<HttpResponseMessage> PutAsync(this HttpClient...
    method PatchAsync (line 147) | public static async Task<HttpResponseMessage> PatchAsync(this HttpClie...
    method DeleteAsync (line 173) | public static async Task<HttpResponseMessage> DeleteAsync(this HttpCli...
    method SendAsync (line 202) | public static async Task<HttpResponseMessage> SendAsync(this HttpClien...
    method ExecuteResponseActions (line 239) | static void ExecuteResponseActions(this HttpRequest request, HttpRespo...

FILE: src/KubeClient.Http/Clients/ClientBuilder.cs
  class ClientBuilder (line 17) | public sealed class ClientBuilder
    method ClientBuilder (line 47) | public ClientBuilder()
    method ClientBuilder (line 57) | ClientBuilder(ClientBuilder copyFrom)
    method CreateClient (line 85) | public HttpClient CreateClient(Uri baseUri = null, HttpMessageHandler ...
    method BuildPipelineTerminus (line 126) | public HttpMessageHandler BuildPipelineTerminus(HttpMessageHandler ini...
    method CreatePipelineHandlers (line 148) | public List<DelegatingHandler> CreatePipelineHandlers()
    method WithMessagePipelineTerminus (line 191) | public ClientBuilder WithMessagePipelineTerminus(Func<HttpMessageHandl...
    method WithMessagePipelineTerminus (line 212) | public ClientBuilder WithMessagePipelineTerminus(Func<HttpMessageHandl...
    method WithDefaultMessagePipelineTerminus (line 230) | public ClientBuilder WithDefaultMessagePipelineTerminus()
    method AddHandler (line 253) | public ClientBuilder AddHandler<THandler>(Func<THandler> handlerFactory)
    method AddHandlerBefore (line 301) | public ClientBuilder AddHandlerBefore<THandler, TBeforeHandler>(Func<T...
    method AddHandlerAfter (line 377) | public ClientBuilder AddHandlerAfter<THandler, TAfterHandler>(Func<THa...
    method EnumerateHandlerTypes (line 439) | public IEnumerable<Type> EnumerateHandlerTypes()
    method CreatePipeline (line 462) | public static HttpMessageHandler CreatePipeline(HttpMessageHandler pip...

FILE: src/KubeClient.Http/Clients/ClientBuilderExtensions.Typed.cs
  class ClientBuilderExtensions (line 12) | public static partial class ClientBuilderExtensions
    method CreateClient (line 35) | public static HttpClient CreateClient<TContext>(this ClientBuilder<TCo...
    method CreateClient (line 77) | public static HttpClient CreateClient<TContext>(this ClientBuilder<TCo...
    method CreateClient (line 121) | public static HttpClient CreateClient<TContext>(this ClientBuilder<TCo...
    method WithMessageHandler (line 153) | public static ClientBuilder<TContext> WithMessageHandler<TMessageHandl...
    method ConfigureHttpClientHandler (line 181) | public static ClientBuilder<TContext> ConfigureHttpClientHandler<TCont...
    method ConfigureMessagePipelineTerminus (line 207) | public static ClientBuilder<TContext> ConfigureMessagePipelineTerminus...
    method WithClientCertificate (line 242) | public static ClientBuilder<TContext> WithClientCertificate<TContext>(...
    method WithServerCertificate (line 280) | public static ClientBuilder<TContext> WithServerCertificate<TContext>(...
    method AcceptAnyServerCertificate (line 329) | public static ClientBuilder<TContext> AcceptAnyServerCertificate<TCont...

FILE: src/KubeClient.Http/Clients/ClientBuilderExtensions.cs
  class ClientBuilderExtensions (line 12) | public static partial class ClientBuilderExtensions
    method CreateClient (line 34) | public static HttpClient CreateClient(this ClientBuilder clientBuilder...
    method CreateClient (line 70) | public static HttpClient CreateClient(this ClientBuilder clientBuilder...
    method CreateClient (line 108) | public static HttpClient CreateClient(this ClientBuilder clientBuilder...
    method WithMessageHandler (line 136) | public static ClientBuilder WithMessageHandler<TMessageHandler>(this C...
    method ConfigureHttpClientHandler (line 164) | public static ClientBuilder ConfigureHttpClientHandler(this ClientBuil...
    method ConfigureMessagePipelineTerminus (line 187) | public static ClientBuilder ConfigureMessagePipelineTerminus<TMessageH...
    method WithClientCertificate (line 219) | public static ClientBuilder WithClientCertificate(this ClientBuilder c...
    method WithServerCertificate (line 257) | public static ClientBuilder WithServerCertificate(this ClientBuilder c...
    method AcceptAnyServerCertificate (line 306) | public static ClientBuilder AcceptAnyServerCertificate(this ClientBuil...

FILE: src/KubeClient.Http/Clients/ClientBuilderOfTContext.cs
  class ClientBuilder (line 19) | public sealed class ClientBuilder<TContext>
    method ClientBuilder (line 49) | public ClientBuilder()
    method ClientBuilder (line 59) | ClientBuilder(ClientBuilder<TContext> copyFrom)
    method CreateClient (line 90) | public HttpClient CreateClient(TContext context, Uri baseUri = null, H...
    method BuildPipelineTerminus (line 134) | public HttpMessageHandler BuildPipelineTerminus(TContext context, Http...
    method CreatePipelineHandlers (line 159) | public List<DelegatingHandler> CreatePipelineHandlers(TContext context)
    method WithMessagePipelineTerminus (line 202) | public ClientBuilder<TContext> WithMessagePipelineTerminus(Func<HttpMe...
    method WithMessagePipelineTerminus (line 223) | public ClientBuilder<TContext> WithMessagePipelineTerminus(Func<TConte...
    method WithDefaultMessagePipelineTerminus (line 241) | public ClientBuilder<TContext> WithDefaultMessagePipelineTerminus()
    method AddHandler (line 264) | public ClientBuilder<TContext> AddHandler<THandler>(Func<TContext, THa...
    method AddHandlerBefore (line 312) | public ClientBuilder<TContext> AddHandlerBefore<THandler, TBeforeHandl...
    method AddHandlerAfter (line 388) | public ClientBuilder<TContext> AddHandlerAfter<THandler, TAfterHandler...
    method EnumerateHandlerTypes (line 450) | public IEnumerable<Type> EnumerateHandlerTypes()

FILE: src/KubeClient.Http/DependencyInjectionExtensions.cs
  class DependencyInjectionExtensions (line 13) | public static class DependencyInjectionExtensions
    method AddHttpClient (line 30) | public static IHttpClientBuilder AddHttpClient(this IServiceCollection...
    method AddHttpClient (line 65) | public static IHttpClientBuilder AddHttpClient(this IServiceCollection...
    method Configure (line 93) | static IHttpClientBuilder Configure(this IHttpClientBuilder client, Cl...
    method Configure (line 130) | static IHttpClientBuilder Configure(this IHttpClientBuilder client, Cl...
    method ConfigureAdditionalHttpMessageHandlers (line 172) | internal static IHttpClientBuilder ConfigureAdditionalHttpMessageHandl...

FILE: src/KubeClient.Http/Diagnostics/ClientBuilderExtensions.cs
  class ClientBuilderExtensions (line 12) | public static class ClientBuilderExtensions
    method WithLogging (line 35) | public static ClientBuilder WithLogging(this ClientBuilder clientBuild...
    method WithLogging (line 61) | public static ClientBuilder WithLogging(this ClientBuilder clientBuild...

FILE: src/KubeClient.Http/Diagnostics/LogEventIds.cs
  class LogEventIds (line 8) | public static class LogEventIds

FILE: src/KubeClient.Http/Diagnostics/LogMessageComponents.cs
  type LogMessageComponents (line 8) | [Flags]

FILE: src/KubeClient.Http/Diagnostics/LoggerExtensions.cs
  class LoggerExtensions (line 12) | public static class LoggerExtensions
    method BeginRequest (line 23) | public static void BeginRequest(this ILogger logger, HttpRequestMessag...
    method RequestBody (line 49) | public static async Task RequestBody(this ILogger logger, HttpRequestM...
    method ResponseBody (line 84) | public static async Task ResponseBody(this ILogger logger, HttpRespons...
    method StreamedResponse (line 120) | public static void StreamedResponse(this ILogger logger, HttpResponseM...
    method EndRequest (line 146) | public static void EndRequest(this ILogger logger, HttpRequestMessage ...
    method RequestError (line 173) | public static void RequestError(this ILogger logger, HttpRequestMessag...

FILE: src/KubeClient.Http/Diagnostics/MessageHandlers/LoggingMessageHandler.cs
  class LoggingMessageHandler (line 12) | public class LoggingMessageHandler
    method LoggingMessageHandler (line 27) | public LoggingMessageHandler(ILogger logger, LogMessageComponents requ...
    method SendAsync (line 64) | protected override async Task<HttpResponseMessage> SendAsync(HttpReque...
    method ShouldLogRequest (line 110) | protected bool ShouldLogRequest(LogMessageComponents requestComponent)...
    method ShouldLogResponse (line 121) | protected bool ShouldLogResponse(LogMessageComponents responseComponen...

FILE: src/KubeClient.Http/Diagnostics/TypedClientBuilderExtensions.cs
  class TypedClientBuilderExtensions (line 12) | public static class TypedClientBuilderExtensions
    method WithLogging (line 38) | public static ClientBuilder<TContext> WithLogging<TContext>(this Clien...
    method WithLogging (line 67) | public static ClientBuilder<TContext> WithLogging<TContext>(this Clien...

FILE: src/KubeClient.Http/FactoryExtensions.cs
  class FactoryExtensions (line 8) | public static class FactoryExtensions
    method Create (line 22) | public static HttpRequest Create(this HttpRequestFactory requestFactor...

FILE: src/KubeClient.Http/Formatters/ContentExtensions.cs
  class ContentExtensions (line 15) | public static class ContentExtensions
    method ReadAsAsync (line 32) | public static Task<TBody> ReadAsAsync<TBody>(this HttpContent content,...
    method ReadAsAsync (line 60) | public static async Task<TBody> ReadAsAsync<TBody>(this HttpContent co...
    method CreateInputFormatterContext (line 88) | public static InputFormatterContext CreateInputFormatterContext<TBody>...

FILE: src/KubeClient.Http/Formatters/EncodingWithoutPreamble.cs
  class OutputEncoding (line 11) | public static class OutputEncoding

FILE: src/KubeClient.Http/Formatters/FormattedObjectContent.cs
  class FormattedObjectContent (line 14) | public class FormattedObjectContent
    method FormattedObjectContent (line 40) | public FormattedObjectContent(IOutputFormatter formatter, Type dataTyp...
    method FormattedObjectContent (line 63) | public FormattedObjectContent(IOutputFormatter formatter, object data,...
    method FormattedObjectContent (line 77) | public FormattedObjectContent(IOutputFormatter formatter, OutputFormat...
    method TryComputeLength (line 131) | protected override bool TryComputeLength(out long length)
    method SerializeToStreamAsync (line 153) | protected override async Task SerializeToStreamAsync(Stream stream, Tr...

FILE: src/KubeClient.Http/Formatters/FormatterClientExtensions.cs
  class FormatterClientExtensions (line 13) | public static class FormatterClientExtensions
    method PostAsync (line 36) | public static async Task<HttpResponseMessage> PostAsync(this HttpClien...
    method PostAsJsonAsync (line 68) | public static Task<HttpResponseMessage> PostAsJsonAsync(this HttpClien...
    method PutAsync (line 94) | public static async Task<HttpResponseMessage> PutAsync(this HttpClient...
    method PutAsJsonAsync (line 126) | public static Task<HttpResponseMessage> PutAsJsonAsync(this HttpClient...
    method PatchAsync (line 152) | public static async Task<HttpResponseMessage> PatchAsync(this HttpClie...
    method PatchAsJsonAsync (line 184) | public static Task<HttpResponseMessage> PatchAsJsonAsync(this HttpClie...
    method DeleteAsync (line 210) | public static async Task<HttpResponseMessage> DeleteAsync(this HttpCli...
    method DeleteAsJsonAsync (line 242) | public static Task<HttpResponseMessage> DeleteAsJsonAsync(this HttpCli...

FILE: src/KubeClient.Http/Formatters/FormatterCollection.cs
  class FormatterCollection (line 11) | public class FormatterCollection
    method FormatterCollection (line 28) | public FormatterCollection()
    method FormatterCollection (line 38) | public FormatterCollection(FormatterCollection formatterCollection)
    method FormatterCollection (line 53) | public FormatterCollection(IEnumerable<IFormatter> formatters)
    method FormatterCollection (line 68) | public FormatterCollection(params IFormatter[] formatters)
    method Add (line 88) | public void Add(IFormatter formatter)
    method Contains (line 109) | public bool Contains(IFormatter formatter)
    method Contains (line 128) | public bool Contains(Type formatterType)
    method Remove (line 145) | public bool Remove(IFormatter formatter)
    method Remove (line 164) | public bool Remove(Type formatterType)
    method Clear (line 175) | public void Clear()
    method FindInputFormatter (line 196) | public IInputFormatter FindInputFormatter(InputFormatterContext context)
    method FindOutputFormatter (line 219) | public IOutputFormatter FindOutputFormatter(OutputFormatterContext con...
    method GetEnumerator (line 240) | public IEnumerator<IFormatter> GetEnumerator()
    method GetEnumerator (line 251) | IEnumerator IEnumerable.GetEnumerator()
    method CopyTo (line 274) | public void CopyTo(IFormatter[] array, int arrayIndex)

FILE: src/KubeClient.Http/Formatters/FormatterCollectionExtensions.cs
  class FormatterCollectionExtensions (line 8) | public static class FormatterCollectionExtensions
    method Remove (line 22) | public static bool Remove<TFormatter>(this IFormatterCollection format...

FILE: src/KubeClient.Http/Formatters/FormatterRequestExtensions.cs
  class FormatterRequestExtensions (line 14) | public static class FormatterRequestExtensions
    method ExpectJson (line 25) | public static HttpRequest ExpectJson(this HttpRequest request)
    method ExpectJson (line 45) | public static HttpRequest<TContext> ExpectJson<TContext>(this HttpRequ...
    method ExpectXml (line 62) | public static HttpRequest ExpectXml(this HttpRequest request)
    method ExpectXml (line 82) | public static HttpRequest<TContext> ExpectXml<TContext>(this HttpReque...
    method BuildRequestMessage (line 111) | public static HttpRequestMessage BuildRequestMessage(this HttpRequest ...
    method BuildRequestMessage (line 143) | public static HttpRequestMessage BuildRequestMessage(this HttpRequest ...
    method WithFormatter (line 182) | public static HttpRequest WithFormatter(this HttpRequest request, IFor...
    method WithoutFormatter (line 223) | public static HttpRequest WithoutFormatter(this HttpRequest request, T...
    method GetFormatters (line 253) | public static ImmutableDictionary<Type, IFormatter> GetFormatters(this...
    method CreateFormatterCollection (line 274) | public static IFormatterCollection CreateFormatterCollection(this Http...

FILE: src/KubeClient.Http/Formatters/FormatterResponseExtensions.cs
  class FormatterResponseExtensions (line 14) | public static class FormatterResponseExtensions
    method ReadContentAsAsync (line 36) | public static async Task<TBody> ReadContentAsAsync<TBody>(this Task<Ht...
    method ReadContentAsAsync (line 73) | public static async Task<TBody> ReadContentAsAsync<TBody>(this Task<Ht...
    method ReadContentAsAsync (line 112) | public static async Task<TBody> ReadContentAsAsync<TBody>(this Task<Ht...
    method ReadContentAsAsync (line 147) | public static Task<TBody> ReadContentAsAsync<TBody>(this Task<HttpResp...
    method ReadContentAsAsync (line 182) | public static async Task<TBody> ReadContentAsAsync<TBody>(this Task<Ht...
    method ReadContentAsAsync (line 217) | public static Task<TBody> ReadContentAsAsync<TBody>(this Task<HttpResp...
    method ReadContentAsAsync (line 246) | public static async Task<TBody> ReadContentAsAsync<TBody>(this Task<Ht...
    method ReadContentAsAsync (line 287) | public static async Task<TBody> ReadContentAsAsync<TBody, TError>(this...
    method ReadContentAsAsync (line 332) | public static async Task<TBody> ReadContentAsAsync<TBody, TError>(this...
    method HasBody (line 364) | public static bool HasBody(this HttpResponseMessage responseMessage)
    method EnsureHasBody (line 384) | public static HttpResponseMessage EnsureHasBody(this HttpResponseMessa...
    method ReadContentAsAsync (line 410) | public static async Task<TBody> ReadContentAsAsync<TBody>(this HttpRes...
    method ReadContentAsAsync (line 444) | public static async Task<TBody> ReadContentAsAsync<TBody>(this HttpRes...
    method ReadContentAsAsync (line 477) | public static Task<TBody> ReadContentAsAsync<TBody>(this HttpResponseM...
    method ReadContentAsAsync (line 513) | public static async Task<TBody> ReadContentAsAsync<TBody>(this HttpRes...
    method ReadContentAsAsync (line 553) | public static async Task<TBody> ReadContentAsAsync<TBody, TError>(this...
    method ReadContentAsAsync (line 595) | public static async Task<TBody> ReadContentAsAsync<TBody, TError>(this...

FILE: src/KubeClient.Http/Formatters/FormatterTypedRequestExtensions.cs
  class FormatterTypedRequestExtensions (line 14) | public static class FormatterTypedRequestExtensions
    method BuildRequestMessage (line 43) | public static HttpRequestMessage BuildRequestMessage<TContext>(this Ht...
    method BuildRequestMessage (line 81) | public static HttpRequestMessage BuildRequestMessage<TContext>(this Ht...
    method WithFormatter (line 119) | public static HttpRequest<TContext> WithFormatter<TContext>(this HttpR...
    method WithoutFormatter (line 160) | public static HttpRequest<TContext> WithoutFormatter<TContext>(this Ht...
    method GetFormatters (line 193) | public static ImmutableDictionary<Type, IFormatter> GetFormatters<TCon...
    method CreateFormatterCollection (line 217) | public static IFormatterCollection CreateFormatterCollection<TContext>...

FILE: src/KubeClient.Http/Formatters/IFormatter.cs
  type IFormatter (line 8) | public interface IFormatter

FILE: src/KubeClient.Http/Formatters/IFormatterCollection.cs
  type IFormatterCollection (line 9) | public interface IFormatterCollection
    method FindInputFormatter (line 24) | IInputFormatter FindInputFormatter(InputFormatterContext context);
    method FindOutputFormatter (line 38) | IOutputFormatter FindOutputFormatter(OutputFormatterContext context);
    method Contains (line 49) | bool Contains(Type formatterType);
    method Remove (line 60) | bool Remove(Type formatterType);

FILE: src/KubeClient.Http/Formatters/IInputFormatter.cs
  type IInputFormatter (line 9) | public interface IInputFormatter
    method CanRead (line 21) | bool CanRead(InputFormatterContext context);
    method ReadAsync (line 35) | Task<object> ReadAsync(InputFormatterContext context, Stream stream);

FILE: src/KubeClient.Http/Formatters/IInputOutputFormatter.cs
  type IInputOutputFormatter (line 6) | public interface IInputOutputFormatter

FILE: src/KubeClient.Http/Formatters/IOutputFormatter.cs
  type IOutputFormatter (line 9) | public interface IOutputFormatter
    method CanWrite (line 21) | bool CanWrite(OutputFormatterContext context);
    method WriteAsync (line 35) | Task WriteAsync(OutputFormatterContext context, Stream stream);

FILE: src/KubeClient.Http/Formatters/InputFormatterContext.cs
  class InputFormatterContext (line 11) | public class InputFormatterContext
    method InputFormatterContext (line 28) | public InputFormatterContext(Type dataType, string mediaType, Encoding...
    method CreateReader (line 68) | public virtual TextReader CreateReader(Stream inputStream)

FILE: src/KubeClient.Http/Formatters/Json/JsonFormatter.cs
  class JsonFormatter (line 14) | public class JsonFormatter
    method JsonFormatter (line 20) | public JsonFormatter()
    method CanRead (line 43) | public bool CanRead(InputFormatterContext context)
    method CanWrite (line 60) | public bool CanWrite(OutputFormatterContext context)
    method ReadAsync (line 80) | public async Task<object> ReadAsync(InputFormatterContext context, Str...
    method WriteAsync (line 103) | public async Task WriteAsync(OutputFormatterContext context, Stream st...

FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatter.cs
  class NewtonsoftJsonFormatter (line 12) | public class NewtonsoftJsonFormatter
    method NewtonsoftJsonFormatter (line 18) | public NewtonsoftJsonFormatter()
    method CanRead (line 41) | public bool CanRead(InputFormatterContext context)
    method CanWrite (line 58) | public bool CanWrite(OutputFormatterContext context)
    method ReadAsync (line 78) | public Task<object> ReadAsync(InputFormatterContext context, Stream st...
    method WriteAsync (line 107) | public Task WriteAsync(OutputFormatterContext context, Stream stream)

FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterExtensions.cs
  class NewtonsoftJsonFormatterExtensions (line 12) | public static class NewtonsoftJsonFormatterExtensions
    method AddJsonFormatter (line 26) | public static IFormatterCollection AddJsonFormatter(this IFormatterCol...

FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterFactoryExtensions.cs
  class NewtonsoftJsonFormatterFactoryExtensions (line 11) | public static class NewtonsoftJsonFormatterFactoryExtensions
    method Json (line 25) | public static HttpRequest Json(this HttpRequestFactory requestFactory,...
    method Json (line 48) | public static HttpRequest Json(this HttpRequestFactory requestFactory,...
    method Json (line 74) | public static HttpRequest Json(this HttpRequestFactory requestFactory,...
    method Json (line 97) | public static HttpRequest Json(this HttpRequestFactory requestFactory,...

FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterRequestExtensions.cs
  class NewtonsoftJsonFormatterRequestExtensions (line 11) | public static class NewtonsoftJsonFormatterRequestExtensions
    method UseJson (line 25) | public static HttpRequest UseJson(this HttpRequest request, JsonSerial...
    method UseJson (line 53) | public static HttpRequest<TContext> UseJson<TContext>(this HttpRequest...

FILE: src/KubeClient.Http/Formatters/Json/NewtonsoftJsonFormatterTypedFactoryExtensions.cs
  class NewtonsoftJsonFormatterTypedFactoryExtensions (line 8) | public static class NewtonsoftJsonFormatterTypedFactoryExtensions
    method Json (line 25) | public static HttpRequest<TContext> Json<TContext>(this HttpRequestFac...
    method Json (line 54) | public static HttpRequest<TContext> Json<TContext>(this HttpRequestFac...

FILE: src/KubeClient.Http/Formatters/MessageExtensions.cs
  class FormatterMessageExtensions (line 13) | public static class FormatterMessageExtensions
    method GetFormatters (line 24) | public static IFormatterCollection GetFormatters(this HttpRequestMessa...
    method GetFormatters (line 49) | public static IFormatterCollection GetFormatters(this HttpResponseMess...
    method SetFormatters (line 75) | public static void SetFormatters(this HttpRequestMessage message, IFor...

FILE: src/KubeClient.Http/Formatters/OutputFormatterContext.cs
  class OutputFormatterContext (line 12) | public class OutputFormatterContext
    method OutputFormatterContext (line 32) | public OutputFormatterContext(object data, Type dataType, string media...
    method CreateWriter (line 77) | public virtual TextWriter CreateWriter(Stream outputStream)

FILE: src/KubeClient.Http/Formatters/StreamHelper.cs
  class StreamHelper (line 10) | static class StreamHelper
    method CreateTransientTextReader (line 34) | public static TextReader CreateTransientTextReader(Stream inputStream,...
    method CreateTransientTextWriter (line 69) | public static TextWriter CreateTransientTextWriter(Stream outputStream...

FILE: src/KubeClient.Http/Formatters/WellKnownMediaTypes.cs
  class WellKnownMediaTypes (line 6) | public static class WellKnownMediaTypes

FILE: src/KubeClient.Http/HttpRequest.cs
  class HttpRequest (line 19) | public sealed class HttpRequest
    method HttpRequest (line 62) | HttpRequest(ImmutableDictionary<string, object> properties)
    method Create (line 85) | public static HttpRequest Create(string requestUri) => Factory.Create(...
    method Create (line 96) | public static HttpRequest Create(Uri requestUri) => Factory.Create(req...
    method BuildRequestUri (line 135) | public Uri BuildRequestUri(Uri baseUri = null)
    method BuildRequestMessage (line 193) | public HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, H...
    method BuildRequestMessage (line 262) | HttpRequestMessage IHttpRequest<object>.BuildRequestMessage(HttpMethod...
    method Clone (line 304) | public new HttpRequest Clone(Action<IDictionary<string, object>> modif...
    method CreateInstance (line 321) | protected override HttpRequestBase CreateInstance(ImmutableDictionary<...
    method MergeQueryParameters (line 339) | Uri MergeQueryParameters(Uri requestUri)
    method GetTemplateParameterValues (line 366) | IDictionary<string, string> GetTemplateParameterValues()
    method SetStandardMessageProperties (line 394) | void SetStandardMessageProperties(HttpRequestMessage requestMessage)

FILE: src/KubeClient.Http/HttpRequestException.cs
  class HttpRequestException (line 12) | public class HttpRequestException<TResponse>
    method HttpRequestException (line 24) | public HttpRequestException(HttpStatusCode statusCode, TResponse respo...
    method HttpRequestException (line 42) | public HttpRequestException(HttpStatusCode statusCode, TResponse respo...
    method HttpRequestException (line 61) | public HttpRequestException(HttpStatusCode statusCode, TResponse respo...
    method Create (line 92) | public static HttpRequestException<TResponse> Create(HttpStatusCode st...

FILE: src/KubeClient.Http/HttpRequestFactory.cs
  class HttpRequestFactory (line 8) | public sealed class HttpRequestFactory
    method HttpRequestFactory (line 16) | public HttpRequestFactory(HttpRequest baseRequest)
    method Create (line 38) | public HttpRequest Create(Uri requestUri)
    method HttpRequestFactory (line 61) | public HttpRequestFactory(HttpRequest<TContext> baseRequest)
    method Create (line 83) | public HttpRequest<TContext> Create(Uri requestUri)
  class HttpRequestFactory (line 53) | public sealed class HttpRequestFactory<TContext>
    method HttpRequestFactory (line 16) | public HttpRequestFactory(HttpRequest baseRequest)
    method Create (line 38) | public HttpRequest Create(Uri requestUri)
    method HttpRequestFactory (line 61) | public HttpRequestFactory(HttpRequest<TContext> baseRequest)
    method Create (line 83) | public HttpRequest<TContext> Create(Uri requestUri)

FILE: src/KubeClient.Http/HttpRequestOfTContext.cs
  class HttpRequest (line 22) | public class HttpRequest<TContext>
    method HttpRequest (line 60) | HttpRequest(ImmutableDictionary<string, object> properties)
    method Create (line 83) | public static HttpRequest<TContext> Create(string requestUri) => Facto...
    method Create (line 94) | public static HttpRequest<TContext> Create(Uri requestUri) => Factory....
    method BuildRequestMessage (line 142) | public HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, T...
    method Clone (line 266) | public new HttpRequest<TContext> Clone(Action<IDictionary<string, obje...
    method CreateInstance (line 283) | protected override HttpRequestBase CreateInstance(ImmutableDictionary<...
    method MergeQueryParameters (line 304) | Uri MergeQueryParameters(Uri requestUri, TContext context)
    method GetTemplateParameterValues (line 334) | IDictionary<string, string> GetTemplateParameterValues(TContext context)
    method SetStandardMessageProperties (line 362) | void SetStandardMessageProperties(HttpRequestMessage requestMessage)

FILE: src/KubeClient.Http/HttpResponse.cs
  type HttpResponse (line 11) | public struct HttpResponse
    method HttpResponse (line 22) | public HttpResponse(HttpRequest request, Task<HttpResponseMessage> task)
    method HttpResponse (line 43) | public HttpResponse(HttpRequest request, Func<Task<HttpResponseMessage...
    method GetAwaiter (line 78) | public TaskAwaiter<HttpResponseMessage> GetAwaiter() => Task.GetAwaite...
    method ConfigureAwait (line 89) | public ConfiguredTaskAwaitable<HttpResponseMessage> ConfigureAwait(boo...

FILE: src/KubeClient.Http/IHttpErrorResponse.cs
  type IHttpErrorResponse (line 6) | public interface IHttpErrorResponse
    method GetExceptionMesage (line 11) | string GetExceptionMesage();

FILE: src/KubeClient.Http/IHttpRequest.cs
  type IHttpRequest (line 9) | public interface IHttpRequest
    method BuildRequestMessage (line 27) | HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, HttpCont...
    method BuildRequestMessage (line 57) | HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, TContext...
  type IHttpRequest (line 36) | public interface IHttpRequest<TContext>
    method BuildRequestMessage (line 27) | HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, HttpCont...
    method BuildRequestMessage (line 57) | HttpRequestMessage BuildRequestMessage(HttpMethod httpMethod, TContext...

FILE: src/KubeClient.Http/IHttpRequestProperties.cs
  type IHttpRequestProperties (line 12) | public interface IHttpRequestProperties
  type IHttpRequestProperties (line 45) | public interface IHttpRequestProperties<TContext>

FILE: src/KubeClient.Http/MessageExtensions.cs
  class MessageExtensions (line 9) | public static class MessageExtensions
    method IsStreamed (line 20) | public static bool IsStreamed(this HttpRequestMessage message)
    method MarkAsStreamed (line 47) | public static HttpRequestMessage MarkAsStreamed(this HttpRequestMessag...

FILE: src/KubeClient.Http/MessageProperties.cs
  class MessageProperties (line 8) | public static class MessageProperties

FILE: src/KubeClient.Http/OtherHttpMethods.cs
  class OtherHttpMethods (line 8) | public static class OtherHttpMethods

FILE: src/KubeClient.Http/RequestExtensions.Headers.cs
  class RequestExtensions (line 11) | public static partial class RequestExtensions
    method WithHeader (line 31) | public static HttpRequest WithHeader(this HttpRequest request, string ...
    method WithHeader (line 66) | public static HttpRequest WithHeader<TValue>(this HttpRequest request,...
    method AcceptMediaType (line 98) | public static HttpRequest AcceptMediaType(this HttpRequest request, st...
    method AcceptNoMediaTypes (line 127) | public static HttpRequest AcceptNoMediaTypes(this HttpRequest request)
    method WithIfMatchHeader (line 150) | public static HttpRequest WithIfMatchHeader(this HttpRequest request, ...
    method WithIfMatchHeader (line 173) | public static HttpRequest WithIfMatchHeader(this HttpRequest request, ...
    method WithIfNoneMatchHeader (line 196) | public static HttpRequest WithIfNoneMatchHeader(this HttpRequest reque...
    method WithIfNoneMatchHeader (line 219) | public static HttpRequest WithIfNoneMatchHeader(this HttpRequest reque...
    method WithHeaderFromProvider (line 248) | public static HttpRequest WithHeaderFromProvider(this HttpRequest requ...

FILE: src/KubeClient.Http/RequestExtensions.Helpers.cs
  class RequestExtensions (line 13) | public static partial class RequestExtensions
    method SetUri (line 24) | static void SetUri(this IDictionary<string, object> requestProperties,...
    method EnsureQuoted (line 48) | static string EnsureQuoted(string str)
    method CreateDeferredParameters (line 82) | static IEnumerable<KeyValuePair<string, IValueProvider<TContext, strin...

FILE: src/KubeClient.Http/RequestExtensions.QueryParameters.cs
  class RequestExtensions (line 12) | public static partial class RequestExtensions
    method WithQueryParameter (line 32) | public static HttpRequest WithQueryParameter<TParameter>(this HttpRequ...
    method WithQueryParameter (line 63) | public static HttpRequest WithQueryParameter<TParameter>(this HttpRequ...
    method WithQueryParameterFromProvider (line 98) | public static HttpRequest WithQueryParameterFromProvider<TParameter>(t...
    method WithQueryParameters (line 133) | public static HttpRequest WithQueryParameters<TParameters>(this HttpRe...
    method WithQueryParametersFromProviders (line 158) | public static HttpRequest WithQueryParametersFromProviders(this HttpRe...
    method WithoutQueryParameter (line 206) | public static HttpRequest WithoutQueryParameter(this HttpRequest reque...
    method WithoutQueryParameters (line 235) | public static HttpRequest WithoutQueryParameters(this HttpRequest requ...

FILE: src/KubeClient.Http/RequestExtensions.RequestActions.cs
  class RequestExtensions (line 9) | public static partial class RequestExtensions
    method WithRequestAction (line 23) | public static HttpRequest WithRequestAction(this HttpRequest request, ...
    method WithRequestAction (line 51) | public static HttpRequest WithRequestAction(this HttpRequest request, ...
    method WithRequestAction (line 77) | public static HttpRequest WithRequestAction(this HttpRequest request, ...
    method WithRequestAction (line 113) | public static HttpRequest WithRequestAction(this HttpRequest request, ...

FILE: src/KubeClient.Http/RequestExtensions.RequestUri.cs
  class RequestExtensions (line 10) | public static partial class RequestExtensions
    method HasAbsoluteUri (line 21) | public static bool HasAbsoluteUri(this IHttpRequest httpRequest)
    method EnsureAbsoluteUri (line 38) | public static Uri EnsureAbsoluteUri(this IHttpRequest httpRequest)
    method WithBaseUri (line 65) | public static HttpRequest WithBaseUri(this HttpRequest request, Uri ba...
    method WithUri (line 99) | public static HttpRequest WithUri(this HttpRequest request, Uri reques...
    method WithRelativeUri (line 125) | public static HttpRequest WithRelativeUri(this HttpRequest request, st...
    method WithRelativeUri (line 150) | public static HttpRequest WithRelativeUri(this HttpRequest request, Ur...

FILE: src/KubeClient.Http/RequestExtensions.ResponseActions.cs
  class RequestExtensions (line 9) | public static partial class RequestExtensions
    method WithResponseAction (line 23) | public static HttpRequest WithResponseAction(this HttpRequest request,...
    method WithResponseAction (line 51) | public static HttpRequest WithResponseAction(this HttpRequest request,...
    method WithResponseAction (line 77) | public static HttpRequest WithResponseAction(this HttpRequest request,...
    method WithResponseAction (line 113) | public static HttpRequest WithResponseAction(this HttpRequest request,...

FILE: src/KubeClient.Http/RequestExtensions.TemplateParameters.cs
  class RequestExtensions (line 12) | public static partial class RequestExtensions
    method WithTemplateParameter (line 32) | public static HttpRequest WithTemplateParameter<TParameter>(this HttpR...
    method WithTemplateParameter (line 63) | public static HttpRequest WithTemplateParameter<TParameter>(this HttpR...
    method WithTemplateParameterFromProvider (line 97) | public static HttpRequest WithTemplateParameterFromProvider<TParameter...
    method WithTemplateParameters (line 132) | public static HttpRequest WithTemplateParameters<TParameters>(this Htt...
    method WithTemplateParametersFromProviders (line 157) | public static HttpRequest WithTemplateParametersFromProviders(this Htt...
    method WithoutTemplateParameter (line 205) | public static HttpRequest WithoutTemplateParameter(this HttpRequest re...
    method WithoutTemplateParameters (line 234) | public static HttpRequest WithoutTemplateParameters(this HttpRequest r...

FILE: src/KubeClient.Http/RequestHeaderExtensions.cs
  class RequestHeaderExtensions (line 11) | public static class RequestHeaderExtensions
    method GetOptionalHeaderValue (line 25) | public static string GetOptionalHeaderValue(this HttpRequestHeaders re...

FILE: src/KubeClient.Http/Templates/ITemplateEvaluationContext.cs
  type ITemplateEvaluationContext (line 9) | interface ITemplateEvaluationContext
    method IsParameterDefined (line 20) | bool IsParameterDefined(string parameterName);

FILE: src/KubeClient.Http/Templates/LiteralQuerySegment.cs
  class LiteralQuerySegment (line 8) | sealed class LiteralQuerySegment
    method LiteralQuerySegment (line 25) | public LiteralQuerySegment(string queryParameterName, string queryPara...
    method GetValue (line 54) | public override string GetValue(ITemplateEvaluationContext evaluationC...

FILE: src/KubeClient.Http/Templates/LiteralUriSegment.cs
  class LiteralUriSegment (line 8) | sealed class LiteralUriSegment
    method LiteralUriSegment (line 25) | public LiteralUriSegment(string value, bool isDirectory)
    method GetValue (line 54) | public override string GetValue(ITemplateEvaluationContext evaluationC...

FILE: src/KubeClient.Http/Templates/ParameterizedQuerySegment.cs
  class ParameterizedQuerySegment (line 8) | sealed class ParameterizedQuerySegment
    method ParameterizedQuerySegment (line 36) | public ParameterizedQuerySegment(string queryParameterName, string tem...
    method GetValue (line 85) | public override string GetValue(ITemplateEvaluationContext evaluationC...

FILE: src/KubeClient.Http/Templates/ParameterizedUriSegment.cs
  class ParameterizedUriSegment (line 8) | sealed class ParameterizedUriSegment
    method ParameterizedUriSegment (line 38) | public ParameterizedUriSegment(string templateParameterName, bool isDi...
    method GetValue (line 87) | public override string GetValue(ITemplateEvaluationContext evaluationC...

FILE: src/KubeClient.Http/Templates/QuerySegment.cs
  class QuerySegment (line 8) | abstract class QuerySegment
    method QuerySegment (line 22) | protected QuerySegment(string queryParameterName)

FILE: src/KubeClient.Http/Templates/RootUriSegment.cs
  class RootUriSegment (line 8) | sealed class RootUriSegment
    method RootUriSegment (line 19) | RootUriSegment()
    method GetValue (line 33) | public override string GetValue(ITemplateEvaluationContext evaluationC...

FILE: src/KubeClient.Http/Templates/TemplateEvaluationContext.cs
  class TemplateEvaluationContext (line 9) | sealed class TemplateEvaluationContext
    method TemplateEvaluationContext (line 20) | public TemplateEvaluationContext()
    method TemplateEvaluationContext (line 30) | public TemplateEvaluationContext(IDictionary<string, string> templateP...
    method IsParameterDefined (line 59) | public bool IsParameterDefined(string parameterName)

FILE: src/KubeClient.Http/Templates/TemplateSegment.cs
  class TemplateSegment (line 11) | abstract class TemplateSegment
    method TemplateSegment (line 24) | protected TemplateSegment()
    method GetValue (line 42) | public abstract string GetValue(ITemplateEvaluationContext evaluationC...
    method Parse (line 53) | public static IReadOnlyList<TemplateSegment> Parse(string template)
    method ParsePathSegments (line 90) | static IEnumerable<UriSegment> ParsePathSegments(Uri template)
    method ParseQuerySegments (line 149) | static IEnumerable<QuerySegment> ParseQuerySegments(Uri template)

FILE: src/KubeClient.Http/Templates/UriSegment.cs
  class UriSegment (line 6) | abstract class UriSegment
    method UriSegment (line 20) | protected UriSegment(bool isDirectory)

FILE: src/KubeClient.Http/TypedClientExtensions.cs
  class TypedClientExtensions (line 12) | public static class TypedClientExtensions
    method HeadAsync (line 34) | public static async Task<HttpResponseMessage> HeadAsync<TContext>(this...
    method GetAsync (line 63) | public static async Task<HttpResponseMessage> GetAsync<TContext>(this ...
    method PostAsync (line 95) | public static async Task<HttpResponseMessage> PostAsync<TContext>(this...
    method PutAsync (line 127) | public static async Task<HttpResponseMessage> PutAsync<TContext>(this ...
    method PatchAsync (line 162) | public static async Task<HttpResponseMessage> PatchAsync<TContext>(thi...
    method DeleteAsync (line 191) | public static async Task<HttpResponseMessage> DeleteAsync<TContext>(th...
    method SendAsync (line 223) | public static async Task<HttpResponseMessage> SendAsync<TContext>(this...
    method ExecuteResponseActions (line 263) | static void ExecuteResponseActions<TContext>(this HttpRequest<TContext...

FILE: src/KubeClient.Http/TypedFactoryExtensions.cs
  class TypedFactoryExtensions (line 8) | public static class TypedFactoryExtensions
    method Create (line 25) | public static HttpRequest<TContext> Create<TContext>(this HttpRequestF...

FILE: src/KubeClient.Http/TypedRequestExtensions.Headers.cs
  class TypedRequestExtensions (line 11) | public static partial class TypedRequestExtensions
    method WithHeader (line 37) | public static HttpRequest<TContext> WithHeader<TContext, TValue>(this ...
    method WithHeader (line 78) | public static HttpRequest<TContext> WithHeader<TContext, TValue>(this ...
    method WithHeader (line 119) | public static HttpRequest<TContext> WithHeader<TContext, TValue>(this ...
    method AcceptMediaType (line 154) | public static HttpRequest<TContext> AcceptMediaType<TContext>(this Htt...
    method AcceptNoMediaTypes (line 186) | public static HttpRequest<TContext> AcceptNoMediaTypes<TContext>(this ...
    method WithIfMatchHeader (line 212) | public static HttpRequest<TContext> WithIfMatchHeader<TContext>(this H...
    method WithIfMatchHeader (line 238) | public static HttpRequest<TContext> WithIfMatchHeader<TContext>(this H...
    method WithIfMatchHeader (line 264) | public static HttpRequest<TContext> WithIfMatchHeader<TContext>(this H...
    method WithIfNoneMatchHeader (line 290) | public static HttpRequest<TContext> WithIfNoneMatchHeader<TContext>(th...
    method WithIfNoneMatchHeader (line 316) | public static HttpRequest<TContext> WithIfNoneMatchHeader<TContext>(th...
    method WithIfNoneMatchHeader (line 342) | public static HttpRequest<TContext> WithIfNoneMatchHeader<TContext>(th...
    method WithHeaderFromProvider (line 374) | public static HttpRequest<TContext> WithHeaderFromProvider<TContext>(t...

FILE: src/KubeClient.Http/TypedRequestExtensions.Helpers.cs
  class TypedRequestExtensions (line 13) | public static partial class TypedRequestExtensions
    method SetUri (line 24) | static void SetUri(this IDictionary<string, object> requestProperties,...
    method EnsureQuoted (line 48) | static string EnsureQuoted(string str)
    method CreateDeferredParameters (line 82) | static IEnumerable<KeyValuePair<string, IValueProvider<TContext, strin...

FILE: src/KubeClient.Http/TypedRequestExtensions.QueryParameters.cs
  class TypedRequestExtensions (line 12) | public static partial class TypedRequestExtensions
    method WithQueryParameter (line 35) | public static HttpRequest<TContext> WithQueryParameter<TContext, TValu...
    method WithQueryParameter (line 66) | public static HttpRequest<TContext> WithQueryParameter<TContext>(this ...
    method WithQueryParameterFromProvider (line 101) | public static HttpRequest<TContext> WithQueryParameterFromProvider<TCo...
    method WithQueryParametersFrom (line 139) | public static HttpRequest<TContext> WithQueryParametersFrom<TContext, ...
    method WithQueryParametersFromProviders (line 167) | public static HttpRequest<TContext> WithQueryParametersFromProviders<T...
    method WithoutQueryParameter (line 218) | public static HttpRequest<TContext> WithoutQueryParameter<TContext>(th...
    method WithoutQueryParameters (line 247) | public static HttpRequest<TContext> WithoutQueryParameters<TContext>(t...

FILE: src/KubeClient.Http/TypedRequestExtensions.RequestActions.cs
  class TypedRequestExtensions (line 9) | public static partial class TypedRequestExtensions
    method WithRequestAction (line 26) | public static HttpRequest<TContext> WithRequestAction<TContext>(this H...
    method WithRequestAction (line 57) | public static HttpRequest<TContext> WithRequestAction<TContext>(this H...
    method WithRequestAction (line 86) | public static HttpRequest<TContext> WithRequestAction<TContext>(this H...
    method WithRequestAction (line 125) | public static HttpRequest<TContext> WithRequestAction<TContext>(this H...

FILE: src/KubeClient.Http/TypedRequestExtensions.RequestUri.cs
  class TypedRequestExtensions (line 10) | public static partial class TypedRequestExtensions
    method WithBaseUri (line 30) | public static HttpRequest<TContext> WithBaseUri<TContext>(this HttpReq...
    method WithUri (line 69) | public static HttpRequest<TContext> WithUri<TContext>(this HttpRequest...
    method WithRelativeUri (line 98) | public static HttpRequest<TContext> WithRelativeUri<TContext>(this Htt...
    method WithRelativeUri (line 126) | public static HttpRequest<TContext> WithRelativeUri<TContext>(this Htt...

FILE: src/KubeClient.Http/TypedRequestExtensions.ResponseActions.cs
  class TypedRequestExtensions (line 9) | public static partial class TypedRequestExtensions
    method WithResponseAction (line 26) | public static HttpRequest<TContext> WithResponseAction<TContext>(this ...
    method WithResponseAction (line 57) | public static HttpRequest<TContext> WithResponseAction<TContext>(this ...
    method WithResponseAction (line 86) | public static HttpRequest<TContext> WithResponseAction<TContext>(this ...
    method WithResponseAction (line 125) | public static HttpRequest<TContext> WithResponseAction<TContext>(this ...

FILE: src/KubeClient.Http/TypedRequestExtensions.TemplateParameters.cs
  class TypedRequestExtensions (line 12) | public static partial class TypedRequestExtensions
    method WithTemplateParameter (line 35) | public static HttpRequest<TContext> WithTemplateParameter<TContext, TV...
    method WithTemplateParameter (line 69) | public static HttpRequest<TContext> WithTemplateParameter<TContext, TP...
    method WithTemplateParameter (line 106) | public static HttpRequest<TContext> WithTemplateParameter<TContext, TP...
    method WithTemplateParameterFromProvider (line 143) | public static HttpRequest<TContext> WithTemplateParameterFromProvider<...
    method WithTemplateParameters (line 181) | public static HttpRequest<TContext> WithTemplateParameters<TContext, T...
    method WithTemplateParametersFromProviders (line 206) | public static HttpRequest<TContext> WithTemplateParametersFromProvider...
    method WithoutTemplateParameter (line 254) | public static HttpRequest<TContext> WithoutTemplateParameter<TContext>...
    method WithoutTemplateParameters (line 283) | public static HttpRequest<TContext> WithoutTemplateParameters<TContext...

FILE: src/KubeClient.Http/UriTemplate.cs
  class UriTemplate (line 13) | public sealed class UriTemplate
    method UriTemplate (line 36) | public UriTemplate(string template)
    method Populate (line 60) | public Uri Populate(IDictionary<string, string> templateParameters)
    method Populate (line 77) | public Uri Populate(Uri baseUri, IDictionary<string, string> templateP...
    method IsTemplate (line 152) | public static bool IsTemplate(Uri uri)
    method IsTemplate (line 169) | public static bool IsTemplate(string uri)

FILE: src/KubeClient.Http/UriTemplateException.cs
  class UriTemplateException (line 8) | public class UriTemplateException
    method UriTemplateException (line 17) | public UriTemplateException(string message)
    method UriTemplateException (line 31) | public UriTemplateException(Exception innerException, string message)

FILE: src/KubeClient.Http/Utilities/DisposalHelpers.cs
  class DisposalHelpers (line 10) | static class DisposalHelpers
    method ToAggregateDisposable (line 24) | public static AggregateDisposable ToAggregateDisposable(this IEnumerab...
    type AggregateDisposable (line 37) | public struct AggregateDisposable
      method AggregateDisposable (line 51) | public AggregateDisposable(IEnumerable<IDisposable> disposables)
      method Dispose (line 62) | public void Dispose()

FILE: src/KubeClient.Http/Utilities/HttpRequestBase.cs
  class HttpRequestBase (line 15) | public abstract class HttpRequestBase
    method HttpRequestBase (line 35) | protected HttpRequestBase(ImmutableDictionary<string, object> properties)
    method HaveProperty (line 78) | protected bool HaveProperty([CallerMemberName] string propertyName = n...
    method GetProperty (line 104) | protected TProperty GetProperty<TProperty>([CallerMemberName] string p...
    method GetOptionalProperty (line 137) | protected TProperty GetOptionalProperty<TProperty>([CallerMemberName] ...
    method EnsurePropertyType (line 161) | protected void EnsurePropertyType<TProperty>(string propertyName)
    method CloneProperties (line 200) | protected ImmutableDictionary<string, object> CloneProperties(Action<R...
    method Clone (line 224) | public virtual HttpRequestBase Clone(Action<IDictionary<string, object...
    method CreateInstance (line 243) | protected abstract HttpRequestBase CreateInstance(ImmutableDictionary<...
    method ToString (line 255) | public override string ToString()

FILE: src/KubeClient.Http/Utilities/ReflectionHelper.cs
  class ReflectionHelper (line 10) | public static class ReflectionHelper
    method IsNullable (line 26) | public static bool IsNullable(this Type type)

FILE: src/KubeClient.Http/Utilities/UriHelper.cs
  class UriHelper (line 11) | public static class UriHelper
    method ParseQueryParameters (line 22) | public static NameValueCollection ParseQueryParameters(this Uri uri)
    method WithQueryParameters (line 66) | public static Uri WithQueryParameters(this Uri uri, NameValueCollectio...
    method WithQueryParameters (line 92) | public static UriBuilder WithQueryParameters(this UriBuilder uriBuilde...
    method AppendRelativeUri (line 161) | internal static Uri AppendRelativeUri(this Uri baseUri, Uri relativeUri)
    method AppendPaths (line 239) | static string AppendPaths(string basePath, string relativePath)
    method MergeQueryStrings (line 280) | static string MergeQueryStrings(string baseQueryString, string additio...

FILE: src/KubeClient.Http/ValueProviders/IValueProvider.cs
  type IValueProvider (line 12) | public interface IValueProvider<in TContext, out TValue>
    method Get (line 23) | TValue Get(TContext source);

FILE: src/KubeClient.Http/ValueProviders/ValueProvider.cs
  class ValueProvider (line 11) | public static class ValueProvider<TContext>
    method FromSelector (line 25) | public static IValueProvider<TContext, TValue> FromSelector<TValue>(Fu...
    method FromFunction (line 45) | public static IValueProvider<TContext, TValue> FromFunction<TValue>(Fu...
    method FromConstantValue (line 65) | public static IValueProvider<TContext, TValue> FromConstantValue<TValu...
    class SelectorValueProvider (line 76) | class SelectorValueProvider<TValue>
      method SelectorValueProvider (line 90) | public SelectorValueProvider(Func<TContext, TValue> selector)
      method Get (line 104) | public TValue Get(TContext source)
    class FunctionValueProvider (line 119) | class FunctionValueProvider<TValue>
      method FunctionValueProvider (line 133) | public FunctionValueProvider(Func<TValue> getValue)
      method Get (line 147) | public TValue Get(TContext source)
    class ConstantValueProvider (line 162) | class ConstantValueProvider<TValue>
      method ConstantValueProvider (line 176) | public ConstantValueProvider(TValue value)
      method Get (line 190) | public TValue Get(TContext source)

FILE: src/KubeClient.Http/ValueProviders/ValueProviderConversion.cs
  type ValueProviderConversion (line 14) | public struct ValueProviderConversion<TContext, TValue>
    method ValueProviderConversion (line 22) | public ValueProviderConversion(IValueProvider<TContext, TValue> valueP...
    method ContextTo (line 45) | public IValueProvider<TDerivedContext, TValue> ContextTo<TDerivedConte...
    method ValueToString (line 65) | public IValueProvider<TContext, string> ValueToString()

FILE: src/KubeClient.Http/ValueProviders/ValueProviderExtensions.cs
  class ValueProviderExtensions (line 8) | public static class ValueProviderExtensions
    method Convert (line 25) | public static ValueProviderConversion<TContext, TValue> Convert<TConte...

FILE: src/KubeClient/ApiMetadata/ApiMetadataExtensions.cs
  class ApiMetadataExtensions (line 10) | public static class ApiMetadataExtensions
    method SupportsAction (line 24) | public static bool SupportsAction(this KubeApiPathMetadata apiPathMeta...

FILE: src/KubeClient/ApiMetadata/KubeApiMetadata.cs
  class KubeApiMetadata (line 10) | public class KubeApiMetadata
    method KubeApiMetadata (line 41) | public KubeApiMetadata(string kind, string apiGroup, string apiVersion...

FILE: src/KubeClient/ApiMetadata/KubeApiMetadataCache.cs
  class KubeApiMetadataCache (line 15) | public sealed class KubeApiMetadataCache
    method KubeApiMetadataCache (line 35) | public KubeApiMetadataCache()
    method Get (line 62) | public KubeApiMetadata Get<TModel>()
    method Get (line 79) | public KubeApiMetadata Get(Type modelType)
    method Get (line 100) | public KubeApiMetadata Get(string name)
    method Get (line 126) | public KubeApiMetadata Get(string kind, string apiGroup, string apiVer...
    method Get (line 156) | public KubeApiMetadata Get(string kind, string apiVersion) => Get(kind...
    method GetPrimaryPath (line 167) | public string GetPrimaryPath<TModel>()
    method GetPrimaryPath (line 184) | public string GetPrimaryPath(Type modelType)
    method GetPrimaryPath (line 205) | public string GetPrimaryPath(string name)
    method GetPrimaryPath (line 225) | public string GetPrimaryPath(string kind, string apiVersion)
    method Clear (line 246) | public void Clear()
    method LoadFromMetadata (line 263) | public void LoadFromMetadata(Assembly assembly, bool clearExisting = f...
    method Load (line 350) | public async Task Load(IKubeApiClient kubeClient, bool clearExisting =...
    method LoadGroupApis (line 430) | async Task<List<KubeApiMetadata>> LoadGroupApis(IKubeApiClient kubeCli...
    method GetCacheKeys (line 511) | public string[] GetCacheKeys()
    method GetKnownResourceKinds (line 525) | public (string kind, string apiVersion)[] GetKnownResourceKinds()
    method Cache (line 552) | void Cache(IEnumerable<KubeApiMetadata> loadedMetadata, bool clearExis...
    method CreateCacheKey (line 610) | static string CreateCacheKey(string kind, string apiGroup, string apiV...

FILE: src/KubeClient/ApiMetadata/KubeApiPathMetadata.cs
  class KubeApiPathMetadata (line 9) | public class KubeApiPathMetadata
    method KubeApiPathMetadata (line 23) | public KubeApiPathMetadata(string path, bool isNamespaced, IReadOnlyCo...

FILE: src/KubeClient/ApiMetadata/KubeApiVerb.cs
  class KubeApiVerb (line 6) | public static class KubeApiVerb

FILE: src/KubeClient/ClientFactoryExtensions.cs
  class ClientFactoryExtensions (line 10) | public static class ClientFactoryExtensions
    method NamespacesV1 (line 21) | public static INamespaceClientV1 NamespacesV1(this IKubeApiClient kube...
    method ConfigMapsV1 (line 40) | public static IConfigMapClientV1 ConfigMapsV1(this IKubeApiClient kube...
    method DaemonSetsV1 (line 58) | public static IDaemonSetClientV1 DaemonSetsV1(this IKubeApiClient kube...
    method DeploymentsV1 (line 76) | public static IDeploymentClientV1 DeploymentsV1(this IKubeApiClient ku...
    method DeploymentsV1Beta1 (line 95) | public static IDeploymentClientV1Beta1 DeploymentsV1Beta1(this IKubeAp...
    method JobsV1 (line 114) | public static IJobClientV1 JobsV1(this IKubeApiClient kubeClient)
    method NodesV1 (line 133) | public static INodeClientV1 NodesV1(this IKubeApiClient kubeClient)
    method EventsV1 (line 152) | public static IEventClientV1 EventsV1(this IKubeApiClient kubeClient)
    method IngressesV1Beta1 (line 171) | public static IIngressClientV1Beta1 IngressesV1Beta1(this IKubeApiClie...
    method PersistentVolumesV1 (line 190) | public static IPersistentVolumeClientV1 PersistentVolumesV1(this IKube...
    method PersistentVolumeClaimsV1 (line 209) | public static IPersistentVolumeClaimClientV1 PersistentVolumeClaimsV1(...
    method PodsV1 (line 228) | public static IPodClientV1 PodsV1(this IKubeApiClient kubeClient)
    method RolesV1 (line 247) | public static IRoleClientV1 RolesV1(this IKubeApiClient kubeClient)
    method RoleBindingsV1 (line 266) | public static IRoleBindingClientV1 RoleBindingsV1(this IKubeApiClient ...
    method SecretsV1 (line 285) | public static ISecretClientV1 SecretsV1(this IKubeApiClient kubeClient)
    method ServiceAccountsV1 (line 304) | public static IServiceAccountClientV1 ServiceAccountsV1(this IKubeApiC...
    method ServicesV1 (line 323) | public static IServiceClientV1 ServicesV1(this IKubeApiClient kubeClient)
    method ReplicationControllersV1 (line 342) | public static IReplicationControllerClientV1 ReplicationControllersV1(...
    method ReplicaSetsV1 (line 361) | public static IReplicaSetClientV1 ReplicaSetsV1(this IKubeApiClient ku...
    method APIGroupsV1 (line 380) | public static IAPIGroupClientV1 APIGroupsV1(this IKubeApiClient kubeCl...
    method APIResourcesV1 (line 399) | public static IAPIResourceClientV1 APIResourcesV1(this IKubeApiClient ...
    method NetworkPolicyV1 (line 418) | public static INetworkPolicyClientV1 NetworkPolicyV1(this IKubeApiClie...
    method StatefulSetV1 (line 437) | public static IStatefulSetClientV1 StatefulSetV1(this IKubeApiClient k...
    method Dynamic (line 456) | public static IDynamicResourceClient Dynamic(this IKubeApiClient kubeC...

FILE: src/KubeClient/KubeApiClient.cs
  class KubeApiClient (line 16) | public sealed class KubeApiClient
    method KubeApiClient (line 43) | KubeApiClient(HttpClient httpClient, KubeClientOptions options)
    method Dispose (line 58) | public void Dispose() => Http.Dispose();
    method GetClientOptions (line 91) | public KubeClientOptions GetClientOptions() => Options.Clone();
    method ResourceClient (line 105) | public TClient ResourceClient<TClient>(Func<IKubeApiClient, TClient> c...
    method Create (line 130) | public static KubeApiClient Create(KubeClientOptions options)
    method Create (line 161) | public static KubeApiClient Create(string apiEndPoint, ILoggerFactory ...
    method Create (line 178) | public static KubeApiClient Create(Uri apiEndPoint, ILoggerFactory log...
    method Create (line 205) | public static KubeApiClient Create(string apiEndPoint, string accessTo...
    method Create (line 235) | public static KubeApiClient Create(string apiEndPoint, X509Certificate...
    method CreateFromPodServiceAccount (line 259) | public static KubeApiClient CreateFromPodServiceAccount(ILoggerFactory...
    method CreateTestClient (line 279) | public static KubeApiClient CreateTestClient(HttpClient httpClient, Ku...

FILE: src/KubeClient/KubeApiClientLoggingExtensions.cs
  class KubeApiClientLoggingExtensions (line 9) | public static class KubeApiClientLoggingExtensions
    method LoggerFactory (line 20) | public static ILoggerFactory LoggerFactory(this KubeApiClient kubeApiC...

FILE: src/KubeClient/KubeApiException.cs
  class KubeApiException (line 12) | public class KubeApiException
    method KubeApiException (line 21) | public KubeApiException(StatusV1 status)
    method KubeApiException (line 36) | public KubeApiException(string message, StatusV1 status)
    method KubeApiException (line 51) | public KubeApiException(StatusV1 status, Exception innerException)
    method KubeApiException (line 69) | public KubeApiException(string message, HttpRequestException<StatusV1>...
    method KubeApiException (line 87) | public KubeApiException(HttpRequestException<StatusV1> requestException)
    method GetExceptionMessage (line 125) | protected static string GetExceptionMessage(StatusV1 status)

FILE: src/KubeClient/KubeClientOptionsExtensions.cs
  class KubeClientOptionsExtensions (line 12) | public static class KubeClientOptionsExtensions
    method Configure (line 26) | public static ClientBuilder Configure(this KubeClientOptions kubeClien...
    method Configure (line 131) | public static ClientBuilder<TContext> Configure<TContext>(this KubeCli...
    method IsUsingDefaultLoggerFactory (line 233) | public static bool IsUsingDefaultLoggerFactory(this KubeClientOptions ...
    method UseDefaultLoggerFactory (line 250) | public static KubeClientOptions UseDefaultLoggerFactory(this KubeClien...

FILE: src/KubeClient/KubeResourceUpdateExtensions.cs
  class KubeResourceUpdateExtensions (line 13) | public static class KubeResourceUpdateExtensions
    method Update (line 33) | public static Task<ConfigMapV1> Update(this ConfigMapClientV1 client, ...
    method Update (line 92) | public static Task<SecretV1> Update(this SecretClientV1 client, Secret...

FILE: src/KubeClient/MessageHandlers/BasicAuthenticationHandler.cs
  class BasicAuthenticationHandler (line 14) | public class BasicAuthenticationHandler : DelegatingHandler
    method BasicAuthenticationHandler (line 23) | public BasicAuthenticationHandler(string username, string password)
    method SendAsync (line 34) | protected override Task<HttpResponseMessage> SendAsync(HttpRequestMess...

FILE: src/KubeClient/MessageHandlers/BearerTokenHandler.cs
  class BearerTokenHandler (line 12) | public abstract class BearerTokenHandler
    method BearerTokenHandler (line 18) | protected BearerTokenHandler()
    method GetTokenAsync (line 31) | protected abstract Task<string> GetTokenAsync(CancellationToken cancel...
    method SendAsync (line 45) | protected sealed override async Task<HttpResponseMessage> SendAsync(Ht...

FILE: src/KubeClient/MessageHandlers/CommandBearerTokenHandler.cs
  class CommandBearerTokenHandler (line 16) | public class CommandBearerTokenHandler
    method CommandBearerTokenHandler (line 83) | public CommandBearerTokenHandler(string accessTokenCommand, string acc...
    method GetTokenAsync (line 115) | protected override async Task<string> GetTokenAsync(CancellationToken ...
    method ConvertAccessTokenExpiresUtc (line 204) | private static DateTime ConvertAccessTokenExpiresUtc(string accessToke...
    method JPathFromGoSelector (line 221) | static string JPathFromGoSelector(string goSelector)

FILE: src/KubeClient/MessageHandlers/StaticBearerTokenHandler.cs
  class StaticBearerTokenHandler (line 12) | public class StaticBearerTokenHandler
    method StaticBearerTokenHandler (line 26) | public StaticBearerTokenHandler(string token)
    method GetTokenAsync (line 43) | protected override Task<string> GetTokenAsync(CancellationToken cancel...

FILE: src/KubeClient/Models/ContractResolvers/KubeContractResolver.cs
  class KubeContractResolver (line 14) | public class KubeContractResolver
    method KubeContractResolver (line 20) | public KubeContractResolver()
    method ResolveDictionaryKey (line 29) | protected override string ResolveDictionaryKey(string dictionaryKey) =...

FILE: src/KubeClient/Models/Converters/DynamicKubeObjectV1Converter.cs
  class DynamicKubeObjectConverter (line 12) | public class DynamicKubeObjectConverter
    method DynamicKubeObjectConverter (line 29) | public DynamicKubeObjectConverter(params Assembly[] modelTypeAssemblies)
    method DynamicKubeObjectConverter (line 38) | public DynamicKubeObjectConverter(IEnumerable<Assembly> modelTypeAssem...
    method CanConvert (line 59) | public override bool CanConvert(Type objectType)
    method ReadJson (line 92) | public override object ReadJson(JsonReader reader, Type objectType, ob...
    method WriteJson (line 137) | public override void WriteJson(JsonWriter writer, object value, JsonSe...

FILE: src/KubeClient/Models/Converters/DynamicKubeResourceV1Converter.cs
  class DynamicKubeResourceV1Converter (line 12) | public class DynamicKubeResourceV1Converter
    method DynamicKubeResourceV1Converter (line 29) | public DynamicKubeResourceV1Converter(params Assembly[] modelTypeAssem...
    method DynamicKubeResourceV1Converter (line 38) | public DynamicKubeResourceV1Converter(IEnumerable<Assembly> modelTypeA...
    method CanConvert (line 55) | public override bool CanConvert(Type objectType)
    method ReadJson (line 88) | public override object ReadJson(JsonReader reader, Type objectType, ob...
    method WriteJson (line 133) | public override void WriteJson(JsonWriter writer, object value, JsonSe...

FILE: src/KubeClient/Models/Converters/Int32OrStringV1Converter.cs
  class Int32OrStringV1Converter (line 9) | public class Int32OrStringV1Converter
    method Int32OrStringV1Converter (line 20) | public Int32OrStringV1Converter()
    method CanConvert (line 33) | public override bool CanConvert(Type objectType) => objectType == Int3...
    method ReadJson (line 53) | public override object ReadJson(JsonReader reader, Type objectType, ob...
    method WriteJson (line 97) | public override void WriteJson(JsonWriter writer, object value, JsonSe...

FILE: src/KubeClient/Models/Converters/MicroTimeV1Converter.cs
  class MicroTimeV1Converter (line 9) | public class MicroTimeV1Converter
    method MicroTimeV1Converter (line 25) | public MicroTimeV1Converter()
    method CanConvert (line 38) | public override bool CanConvert(Type objectType) => objectType == Micr...
    method ReadJson (line 58) | public override object ReadJson(JsonReader reader, Type objectType, ob...
    method WriteJson (line 111) | public override void WriteJson(JsonWriter writer, object value, JsonSe...

FILE: src/KubeClient/Models/Converters/ResourceEventV1Converter.cs
  class ResourceEventV1Converter (line 13) | public class ResourceEventV1Converter
    method ResourceEventV1Converter (line 40) | public ResourceEventV1Converter(params Assembly[] modelTypeAssemblies)
    method ResourceEventV1Converter (line 49) | public ResourceEventV1Converter(IEnumerable<Assembly> modelTypeAssembl...
    method CanConvert (line 68) | public override bool CanConvert(Type objectType) => objectType == Reso...
    method ReadJson (line 93) | public override object ReadJson(JsonReader reader, Type objectType, ob...
    method WriteJson (line 127) | public override void WriteJson(JsonWriter writer, object value, JsonSe...
    method DeserializeEventType (line 143) | ResourceEventType DeserializeEventType(JObject eventJson)
    method GetResourceJson (line 164) | (JObject resourceJson, string kind, string apiVersion) GetResourceJson...
    method GetModelType (line 192) | Type GetModelType(string kind, string apiVersion)
    method DeserializeResource (line 217) | KubeResourceV1 DeserializeResource(JObject eventJson, JsonSerializer s...

FILE: src/KubeClient/Models/DeleteOptionsV1.cs
  class DeleteOptionsV1 (line 10) | [KubeObject("DeleteOptions", "v1")]

FILE: src/KubeClient/Models/DeletePropagationPolicy.cs
  type DeletePropagationPolicy (line 6) | public enum DeletePropagationPolicy

FILE: src/KubeClient/Models/ExecCredentialV1Beta1.cs
  class ExecCredentialV1Beta1 (line 8) | [KubeObject("ExecCredential", "client.authentication.k8s.io/v1beta1")]
    method ExecCredentialV1Beta1 (line 15) | public ExecCredentialV1Beta1()
    method ShouldSerializeStatus (line 30) | public bool ShouldSerializeStatus() => Status.Count > 0;
    method GetToken (line 38) | public string GetToken()

FILE: src/KubeClient/Models/IResourceEventV1.cs
  type IResourceEventV1 (line 10) | public interface IResourceEventV1<out TResource>

FILE: src/KubeClient/Models/Int32OrStringV1.cs
  class Int32OrStringV1 (line 17) | [JsonConverter(typeof(Int32OrStringV1Converter))]
    method Int32OrStringV1 (line 42) | public Int32OrStringV1(int value)
    method Int32OrStringV1 (line 54) | public Int32OrStringV1(string value)
    method Int32OrStringV1 (line 71) | public Int32OrStringV1()
    method Equals (line 107) | public bool Equals(Int32OrStringV1 other) => _intValue == other._intVa...
    method Equals (line 118) | public bool Equals(int other) => _intValue == other;
    method Equals (line 129) | public bool Equals(string other) => _stringValue == other;
    method Equals (line 140) | public override bool Equals(object other)
    method GetHashCode (line 160) | public override int GetHashCode() => _intValue?.GetHashCode() ?? _stri...
    method ToString (line 165) | public override string ToString() => StringValue;
    method Read (line 173) | void IYamlConvertible.Read(IParser parser, Type expectedType, ObjectDe...
    method Write (line 216) | void IYamlConvertible.Write(IEmitter emitter, ObjectSerializer nestedO...

FILE: src/KubeClient/Models/JSONSchemaPropsOrBoolV1.cs
  class JSONSchemaPropsOrBoolV1 (line 9) | public partial class JSONSchemaPropsOrBoolV1

FILE: src/KubeClient/Models/JSONSchemaPropsOrStringArrayV1.cs
  class JSONSchemaPropsOrStringArrayV1 (line 14) | public partial class JSONSchemaPropsOrStringArrayV1

FILE: src/KubeClient/Models/JSONSchemaPropsV1.cs
  class JSONSchemaPropsV1 (line 9) | public partial class JSONSchemaPropsV1

FILE: src/KubeClient/Models/KubeActions.cs
  type KubeAction (line 8) | public enum KubeAction

FILE: src/KubeClient/Models/KubeApiAttribute.cs
  class KubeApiAttribute (line 8) | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited ...
    method KubeApiAttribute (line 21) | public KubeApiAttribute(KubeAction action, params string[] paths)

FILE: src/KubeClient/Models/KubeListItemAttribute.cs
  class KubeListItemAttribute (line 8) | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited...
    method KubeListItemAttribute (line 21) | public KubeListItemAttribute(string kind, string apiVersion)

FILE: src/KubeClient/Models/KubeObjectAttribute.cs
  class KubeObjectAttribute (line 8) | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited...
    method KubeObjectAttribute (line 21) | public KubeObjectAttribute(string kind, string apiVersion)

FILE: src/KubeClient/Models/KubeObjectV1.cs
  class KubeObjectV1 (line 12) | public class KubeObjectV1
    method KubeObjectV1 (line 22) | protected KubeObjectV1()
    method GetKubeKind (line 50) | public static (string kind, string apiVersion) GetKubeKind<TObject>()
    method GetKubeKind (line 67) | public static (string kind, string apiVersion) GetKubeKind(Type kubeOb...
  class KubeObjectExtensions (line 88) | public static class KubeObjectExtensions
    method NoTypeMeta (line 99) | public static TObject NoTypeMeta<TObject>(this TObject kubeObject)

FILE: src/KubeClient/Models/KubeResourceListResultV1.cs
  class KubeResourceListResultV1 (line 14) | public class KubeResourceListResultV1<TResource>
    method KubeResourceListResultV1 (line 24) | public KubeResourceListResultV1(KubeResourceListV1<TResource> resources)
    method KubeResourceListResultV1 (line 36) | public KubeResourceListResultV1(StatusV1 status)
    method DefaultStatus (line 105) | protected static StatusV1 DefaultStatus(KubeResourceListV1<TResource> ...
    method GetEnumerator (line 122) | public IEnumerator<TResource> GetEnumerator()
    method GetEnumerator (line 142) | IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();

FILE: src/KubeClient/Models/KubeResourceListV1.cs
  class KubeResourceListV1 (line 14) | public abstract class KubeResourceListV1
    method EnumerateItems (line 35) | public abstract IEnumerable<KubeResourceV1> EnumerateItems();
    method GetListItemKubeKind (line 46) | public static (string kind, string apiVersion) GetListItemKubeKind<TRe...
    method GetListItemKubeKind (line 63) | public static (string kind, string apiVersion) GetListItemKubeKind(Typ...
    method EnumerateItems (line 100) | public override IEnumerable<KubeResourceV1> EnumerateItems()
    method GetEnumerator (line 112) | public IEnumerator<TResource> GetEnumerator() => Items.GetEnumerator();
    method GetEnumerator (line 120) | IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
  class KubeResourceListV1 (line 84) | [JsonObject]
    method EnumerateItems (line 35) | public abstract IEnumerable<KubeResourceV1> EnumerateItems();
    method GetListItemKubeKind (line 46) | public static (string kind, string apiVersion) GetListItemKubeKind<TRe...
    method GetListItemKubeKind (line 63) | public static (string kind, string apiVersion) GetListItemKubeKind(Typ...
    method EnumerateItems (line 100) | public override IEnumerable<KubeResourceV1> EnumerateItems()
    method GetEnumerator (line 112) | public IEnumerator<TResource> GetEnumerator() => Items.GetEnumerator();
    method GetEnumerator (line 120) | IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();

FILE: src/KubeClient/Models/KubeResourceResultV1.cs
  class KubeResourceResultV1 (line 11) | public class KubeResourceResultV1<TResource>
    method KubeResourceResultV1 (line 21) | public KubeResourceResultV1(TResource resource)
    method KubeResourceResultV1 (line 33) | public KubeResourceResultV1(StatusV1 status)

FILE: src/KubeClient/Models/KubeResourceV1.cs
  class KubeResourceV1 (line 9) | public abstract class KubeResourceV1

FILE: src/KubeClient/Models/KubeResultV1.cs
  class KubeResultV1 (line 8) | public abstract class KubeResultV1
    method KubeResultV1 (line 31) | protected KubeResultV1(StatusV1 status)

FILE: src/KubeClient/Models/MergeStrategyAttribute.cs
  class MergeStrategyAttribute (line 8) | [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultip...
    method MergeStrategyAttribute (line 15) | public MergeStrategyAttribute()

FILE: src/KubeClient/Models/MicroTimeV1.cs
  type MicroTimeV1 (line 14) | [JsonConverter(typeof(MicroTimeV1Converter))]
    method MicroTimeV1 (line 28) | public MicroTimeV1(DateTime value)
    method ToString (line 44) | public override string ToString() => _value.ToString("o");

FILE: src/KubeClient/Models/ModelExtensions.cs
  class ModelExtensions (line 10) | public static class ModelExtensions
    method GetHostAndPort (line 24) | public static (string hostName, int? port) GetHostAndPort(this Service...
    method IsOwnedBy (line 62) | public static bool IsOwnedBy(this ReplicaSetV1 replicaSet, DeploymentV...
    method GetRevision (line 96) | public static int? GetRevision(this DeploymentV1 deployment)
    method GetRevision (line 124) | public static int? GetRevision(this ReplicaSetV1 deployment)
    method GetLabelSelector (line 152) | public static string GetLabelSelector(this DeploymentV1 deployment)
    method GetLabelSelector (line 169) | public static string GetLabelSelector(this LabelSelectorV1 labelSelector)
    method ToObjectReference (line 190) | public static ObjectReferenceV1 ToObjectReference(this KubeResourceV1 ...

FILE: src/KubeClient/Models/ModelMetadata.cs
  class ModelMetadata (line 13) | public static class ModelMetadata
    class KubeObject (line 23) | public static class KubeObject
      method BuildTypeToKindLookup (line 44) | public static Dictionary<Type, (string kind, string apiVersion)> Bui...
      method BuildTypeToKindLookup (line 55) | public static Dictionary<Type, (string kind, string apiVersion)> Bui...
      method BuildListTypeToKindLookup (line 97) | public static Dictionary<Type, (string kind, string apiVersion)> Bui...
      method BuildListTypeToKindLookup (line 108) | public static Dictionary<Type, (string kind, string apiVersion)> Bui...
      method BuildKindToTypeLookup (line 150) | public static Dictionary<(string kind, string apiVersion), Type> Bui...
      method BuildKindToTypeLookup (line 161) | public static Dictionary<(string kind, string apiVersion), Type> Bui...
      method BuildKindToListTypeLookup (line 203) | public static Dictionary<(string kind, string apiVersion), Type> Bui...
      method BuildKindToListTypeLookup (line 214) | public static Dictionary<(string kind, string apiVersion), Type> Bui...
    class StrategicPatch (line 255) | public static class StrategicPatch
      method IsMergeStrategy (line 266) | public static bool IsMergeStrategy(PropertyInfo property)
      method IsRetainKeysStrategy (line 283) | public static bool IsRetainKeysStrategy(PropertyInfo property)
      method GetStrategies (line 300) | public static PatchStrategies GetStrategies(PropertyInfo property)
      method GetMergeKey (line 335) | public static string GetMergeKey(PropertyInfo property)
      class For (line 349) | public static class For<TModel>
        method IsMergeStrategy (line 364) | public static bool IsMergeStrategy<TProperty>(Expression<Func<TMod...
        method IsRetainKeysStrategy (line 386) | public static bool IsRetainKeysStrategy<TProperty>(Expression<Func...
        method GetStrategies (line 408) | public static PatchStrategies GetStrategies<TProperty>(Expression<...
        method GetMergeKey (line 430) | public static string GetMergeKey<TProperty>(Expression<Func<TModel...
    method GetProperty (line 457) | static PropertyInfo GetProperty<TModel, TProperty>(Expression<Func<TMo...

FILE: src/KubeClient/Models/ObjectMetaV1.cs
  class ObjectMetaV1 (line 11) | public partial class ObjectMetaV1

FILE: src/KubeClient/Models/PatchStrategies.cs
  type PatchStrategies (line 8) | [Flags]

FILE: src/KubeClient/Models/PatchStrategyAttribute.cs
  class PatchStrategyAttribute (line 8) | public abstract class PatchStrategyAttribute
    method PatchStrategyAttribute (line 14) | protected PatchStrategyAttribute()

FILE: src/KubeClient/Models/QuantityResource.cs
  class QuantityResource (line 10) | [KubeObject("Quantity", "resource")]

FILE: src/KubeClient/Models/ResourceEventType.cs
  type ResourceEventType (line 8) | public enum ResourceEventType

FILE: src/KubeClient/Models/ResourceEventV1.cs
  class ResourceEventV1 (line 11) | public class ResourceEventV1<TResource>

FILE: src/KubeClient/Models/RetainKeysStrategyAttribute.cs
  class RetainKeysStrategyAttribute (line 8) | [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultip...
    method RetainKeysStrategyAttribute (line 15) | public RetainKeysStrategyAttribute()

FILE: src/KubeClient/Models/StatusV1.cs
  class StatusV1 (line 11) | public partial class StatusV1
    method EnumerateItems (line 41) | public override IEnumerable<KubeResourceV1> EnumerateItems()
    method Success (line 55) | public static StatusV1 Success(string message)
    method Failure (line 82) | public static StatusV1 Failure(string message, string reason = null, i...

FILE: src/KubeClient/Models/ThirdPartyResourceListV1Beta1.cs
  class ThirdPartyResourceListV1Beta1 (line 10) | [KubeObject("ThirdPartyResourceList", "extensions/v1beta1")]

FILE: src/KubeClient/Models/ThirdPartyResourceV1Beta1.cs
  class ThirdPartyResourceV1Beta1 (line 10) | [KubeObject("ThirdPartyResource", "extensions/v1beta1")]

FILE: src/KubeClient/Models/TimeV1.cs
  class TimeV1 (line 10) | [KubeObject("Time", "v1")]

FILE: src/KubeClient/Models/Yaml.cs
  class Yaml (line 15) | public static class Yaml
    method ToJson (line 51) | public static JToken ToJson(TextReader yaml)
    method ToJson (line 87) | public static string ToJson(string yaml, Formatting formatting = Forma...
    method Deserialize (line 130) | public static TModel Deserialize<TModel>(TextReader yaml)
    method Serialize (line 168) | public static void Serialize(object model, TextWriter writer)
    method CreateJsonReader (line 206) | static JsonReader CreateJsonReader(Stream stream)
    method CreateJsonWriter (line 240) | static JsonWriter CreateJsonWriter(Stream stream)
    method CreateTextReader (line 274) | static TextReader CreateTextReader(Stream stream)
    method CreateTextWriter (line 291) | static TextWriter CreateTextWriter(Stream stream)

FILE: src/KubeClient/Models/generated/APIGroupListV1.cs
  class APIGroupListV1 (line 11) | public partial class APIGroupListV1 : KubeObjectV1

FILE: src/KubeClient/Models/generated/APIGroupV1.cs
  class APIGroupV1 (line 11) | public partial class APIGroupV1 : KubeObjectV1
    method ShouldSerializeServerAddressByClientCIDRs (line 37) | public bool ShouldSerializeServerAddressByClientCIDRs() => ServerAddre...

FILE: src/KubeClient/Models/generated/APIResourceListV1.cs
  class APIResourceListV1 (line 11) | public partial class APIResourceListV1 : KubeObjectV1

FILE: src/KubeClient/Models/generated/APIResourceV1.cs
  class APIResourceV1 (line 11) | public partial class APIResourceV1
    method ShouldSerializeCategories (line 72) | public bool ShouldSerializeCategories() => Categories.Count > 0;
    method ShouldSerializeShortNames (line 84) | public bool ShouldSerializeShortNames() => ShortNames.Count > 0;

FILE: src/KubeClient/Models/generated/APIServiceConditionV1.cs
  class APIServiceConditionV1 (line 11) | public partial class APIServiceConditionV1

FILE: src/KubeClient/Models/generated/APIServiceConditionV1Beta1.cs
  class APIServiceConditionV1Beta1 (line 11) | public partial class APIServiceConditionV1Beta1

FILE: src/KubeClient/Models/generated/APIServiceListV1.cs
  class APIServiceListV1 (line 11) | [KubeListItem("APIService", "apiregistration.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/APIServiceListV1Beta1.cs
  class APIServiceListV1Beta1 (line 11) | [KubeListItem("APIService", "apiregistration.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/APIServiceSpecV1.cs
  class APIServiceSpecV1 (line 11) | public partial class APIServiceSpecV1

FILE: src/KubeClient/Models/generated/APIServiceSpecV1Beta1.cs
  class APIServiceSpecV1Beta1 (line 11) | public partial class APIServiceSpecV1Beta1

FILE: src/KubeClient/Models/generated/APIServiceStatusV1.cs
  class APIServiceStatusV1 (line 11) | public partial class APIServiceStatusV1
    method ShouldSerializeConditions (line 24) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/APIServiceStatusV1Beta1.cs
  class APIServiceStatusV1Beta1 (line 11) | public partial class APIServiceStatusV1Beta1
    method ShouldSerializeConditions (line 24) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/APIServiceV1.cs
  class APIServiceV1 (line 11) | [KubeObject("APIService", "apiregistration.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/APIServiceV1Beta1.cs
  class APIServiceV1Beta1 (line 11) | [KubeObject("APIService", "apiregistration.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/APIVersionV1Beta1.cs
  class APIVersionV1Beta1 (line 11) | public partial class APIVersionV1Beta1

FILE: src/KubeClient/Models/generated/APIVersionsV1.cs
  class APIVersionsV1 (line 11) | public partial class APIVersionsV1 : KubeObjectV1

FILE: src/KubeClient/Models/generated/AWSElasticBlockStoreVolumeSourceV1.cs
  class AWSElasticBlockStoreVolumeSourceV1 (line 13) | public partial class AWSElasticBlockStoreVolumeSourceV1

FILE: src/KubeClient/Models/generated/AffinityV1.cs
  class AffinityV1 (line 11) | public partial class AffinityV1

FILE: src/KubeClient/Models/generated/AggregationRuleV1.cs
  class AggregationRuleV1 (line 11) | public partial class AggregationRuleV1
    method ShouldSerializeClusterRoleSelectors (line 23) | public bool ShouldSerializeClusterRoleSelectors() => ClusterRoleSelect...

FILE: src/KubeClient/Models/generated/AggregationRuleV1Alpha1.cs
  class AggregationRuleV1Alpha1 (line 11) | public partial class AggregationRuleV1Alpha1
    method ShouldSerializeClusterRoleSelectors (line 23) | public bool ShouldSerializeClusterRoleSelectors() => ClusterRoleSelect...

FILE: src/KubeClient/Models/generated/AggregationRuleV1Beta1.cs
  class AggregationRuleV1Beta1 (line 11) | public partial class AggregationRuleV1Beta1
    method ShouldSerializeClusterRoleSelectors (line 23) | public bool ShouldSerializeClusterRoleSelectors() => ClusterRoleSelect...

FILE: src/KubeClient/Models/generated/AllocationResultV1Alpha3.cs
  class AllocationResultV1Alpha3 (line 11) | public partial class AllocationResultV1Alpha3

FILE: src/KubeClient/Models/generated/AllowedFlexVolumeV1Beta1.cs
  class AllowedFlexVolumeV1Beta1 (line 11) | public partial class AllowedFlexVolumeV1Beta1

FILE: src/KubeClient/Models/generated/AllowedHostPathV1Beta1.cs
  class AllowedHostPathV1Beta1 (line 11) | public partial class AllowedHostPathV1Beta1

FILE: src/KubeClient/Models/generated/AppArmorProfileV1.cs
  class AppArmorProfileV1 (line 11) | public partial class AppArmorProfileV1

FILE: src/KubeClient/Models/generated/AttachedVolumeV1.cs
  class AttachedVolumeV1 (line 11) | public partial class AttachedVolumeV1

FILE: src/KubeClient/Models/generated/AuditAnnotationV1.cs
  class AuditAnnotationV1 (line 11) | public partial class AuditAnnotationV1

FILE: src/KubeClient/Models/generated/AuditAnnotationV1Alpha1.cs
  class AuditAnnotationV1Alpha1 (line 11) | public partial class AuditAnnotationV1Alpha1

FILE: src/KubeClient/Models/generated/AuditAnnotationV1Beta1.cs
  class AuditAnnotationV1Beta1 (line 11) | public partial class AuditAnnotationV1Beta1

FILE: src/KubeClient/Models/generated/AzureDiskVolumeSourceV1.cs
  class AzureDiskVolumeSourceV1 (line 11) | public partial class AzureDiskVolumeSourceV1

FILE: src/KubeClient/Models/generated/AzureFilePersistentVolumeSourceV1.cs
  class AzureFilePersistentVolumeSourceV1 (line 11) | public partial class AzureFilePersistentVolumeSourceV1

FILE: src/KubeClient/Models/generated/AzureFileVolumeSourceV1.cs
  class AzureFileVolumeSourceV1 (line 11) | public partial class AzureFileVolumeSourceV1

FILE: src/KubeClient/Models/generated/BasicDeviceV1Alpha3.cs
  class BasicDeviceV1Alpha3 (line 11) | public partial class BasicDeviceV1Alpha3
    method ShouldSerializeAttributes (line 25) | public bool ShouldSerializeAttributes() => Attributes.Count > 0;
    method ShouldSerializeCapacity (line 39) | public bool ShouldSerializeCapacity() => Capacity.Count > 0;

FILE: src/KubeClient/Models/generated/BindingV1.cs
  class BindingV1 (line 11) | [KubeObject("Binding", "v1")]

FILE: src/KubeClient/Models/generated/BoundObjectReferenceV1.cs
  class BoundObjectReferenceV1 (line 11) | public partial class BoundObjectReferenceV1 : KubeObjectV1

FILE: src/KubeClient/Models/generated/CELDeviceSelectorV1Alpha3.cs
  class CELDeviceSelectorV1Alpha3 (line 11) | public partial class CELDeviceSelectorV1Alpha3

FILE: src/KubeClient/Models/generated/CSIDriverListV1.cs
  class CSIDriverListV1 (line 11) | [KubeListItem("CSIDriver", "storage.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CSIDriverSpecV1.cs
  class CSIDriverSpecV1 (line 11) | public partial class CSIDriverSpecV1
    method ShouldSerializeTokenRequests (line 49) | public bool ShouldSerializeTokenRequests() => TokenRequests.Count > 0;
    method ShouldSerializeVolumeLifecycleModes (line 67) | public bool ShouldSerializeVolumeLifecycleModes() => VolumeLifecycleMo...

FILE: src/KubeClient/Models/generated/CSIDriverV1.cs
  class CSIDriverV1 (line 11) | [KubeObject("CSIDriver", "storage.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CSINodeDriverV1.cs
  class CSINodeDriverV1 (line 11) | public partial class CSINodeDriverV1
    method ShouldSerializeTopologyKeys (line 44) | public bool ShouldSerializeTopologyKeys() => TopologyKeys.Count > 0;

FILE: src/KubeClient/Models/generated/CSINodeListV1.cs
  class CSINodeListV1 (line 11) | [KubeListItem("CSINode", "storage.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CSINodeSpecV1.cs
  class CSINodeSpecV1 (line 11) | public partial class CSINodeSpecV1

FILE: src/KubeClient/Models/generated/CSINodeV1.cs
  class CSINodeV1 (line 11) | [KubeObject("CSINode", "storage.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CSIPersistentVolumeSourceV1.cs
  class CSIPersistentVolumeSourceV1 (line 11) | public partial class CSIPersistentVolumeSourceV1
    method ShouldSerializeVolumeAttributes (line 79) | public bool ShouldSerializeVolumeAttributes() => VolumeAttributes.Coun...

FILE: src/KubeClient/Models/generated/CSIStorageCapacityListV1.cs
  class CSIStorageCapacityListV1 (line 11) | [KubeListItem("CSIStorageCapacity", "storage.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CSIStorageCapacityV1.cs
  class CSIStorageCapacityV1 (line 19) | [KubeObject("CSIStorageCapacity", "storage.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CSIVolumeSourceV1.cs
  class CSIVolumeSourceV1 (line 11) | public partial class CSIVolumeSourceV1
    method ShouldSerializeVolumeAttributes (line 44) | public bool ShouldSerializeVolumeAttributes() => VolumeAttributes.Coun...

FILE: src/KubeClient/Models/generated/CapabilitiesV1.cs
  class CapabilitiesV1 (line 11) | public partial class CapabilitiesV1
    method ShouldSerializeAdd (line 23) | public bool ShouldSerializeAdd() => Add.Count > 0;
    method ShouldSerializeDrop (line 35) | public bool ShouldSerializeDrop() => Drop.Count > 0;

FILE: src/KubeClient/Models/generated/CephFSPersistentVolumeSourceV1.cs
  class CephFSPersistentVolumeSourceV1 (line 11) | public partial class CephFSPersistentVolumeSourceV1

FILE: src/KubeClient/Models/generated/CephFSVolumeSourceV1.cs
  class CephFSVolumeSourceV1 (line 11) | public partial class CephFSVolumeSourceV1

FILE: src/KubeClient/Models/generated/CertificateSigningRequestConditionV1.cs
  class CertificateSigningRequestConditionV1 (line 11) | public partial class CertificateSigningRequestConditionV1

FILE: src/KubeClient/Models/generated/CertificateSigningRequestConditionV1Beta1.cs
  class CertificateSigningRequestConditionV1Beta1 (line 11) | public partial class CertificateSigningRequestConditionV1Beta1

FILE: src/KubeClient/Models/generated/CertificateSigningRequestListV1.cs
  class CertificateSigningRequestListV1 (line 11) | [KubeListItem("CertificateSigningRequest", "certificates.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CertificateSigningRequestListV1Beta1.cs
  class CertificateSigningRequestListV1Beta1 (line 11) | [KubeListItem("CertificateSigningRequest", "certificates.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/CertificateSigningRequestSpecV1.cs
  class CertificateSigningRequestSpecV1 (line 11) | public partial class CertificateSigningRequestSpecV1
    method ShouldSerializeExtra (line 23) | public bool ShouldSerializeExtra() => Extra.Count > 0;
    method ShouldSerializeGroups (line 94) | public bool ShouldSerializeGroups() => Groups.Count > 0;
    method ShouldSerializeUsages (line 119) | public bool ShouldSerializeUsages() => Usages.Count > 0;

FILE: src/KubeClient/Models/generated/CertificateSigningRequestSpecV1Beta1.cs
  class CertificateSigningRequestSpecV1Beta1 (line 11) | public partial class CertificateSigningRequestSpecV1Beta1
    method ShouldSerializeExtra (line 23) | public bool ShouldSerializeExtra() => Extra.Count > 0;
    method ShouldSerializeGroups (line 49) | public bool ShouldSerializeGroups() => Groups.Count > 0;
    method ShouldSerializeUsages (line 62) | public bool ShouldSerializeUsages() => Usages.Count > 0;

FILE: src/KubeClient/Models/generated/CertificateSigningRequestStatusV1.cs
  class CertificateSigningRequestStatusV1 (line 11) | public partial class CertificateSigningRequestStatusV1
    method ShouldSerializeConditions (line 51) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/CertificateSigningRequestStatusV1Beta1.cs
  class CertificateSigningRequestStatusV1Beta1 (line 11) | public partial class CertificateSigningRequestStatusV1Beta1
    method ShouldSerializeConditions (line 30) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/CertificateSigningRequestV1.cs
  class CertificateSigningRequestV1 (line 17) | [KubeObject("CertificateSigningRequest", "certificates.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CertificateSigningRequestV1Beta1.cs
  class CertificateSigningRequestV1Beta1 (line 11) | [KubeObject("CertificateSigningRequest", "certificates.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/CinderPersistentVolumeSourceV1.cs
  class CinderPersistentVolumeSourceV1 (line 11) | public partial class CinderPersistentVolumeSourceV1

FILE: src/KubeClient/Models/generated/CinderVolumeSourceV1.cs
  class CinderVolumeSourceV1 (line 11) | public partial class CinderVolumeSourceV1

FILE: src/KubeClient/Models/generated/ClientIPConfigV1.cs
  class ClientIPConfigV1 (line 11) | public partial class ClientIPConfigV1

FILE: src/KubeClient/Models/generated/ClusterRoleBindingListV1.cs
  class ClusterRoleBindingListV1 (line 11) | [KubeListItem("ClusterRoleBinding", "rbac.authorization.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/ClusterRoleBindingListV1Alpha1.cs
  class ClusterRoleBindingListV1Alpha1 (line 11) | [KubeListItem("ClusterRoleBinding", "rbac.authorization.k8s.io/v1alpha1")]

FILE: src/KubeClient/Models/generated/ClusterRoleBindingListV1Beta1.cs
  class ClusterRoleBindingListV1Beta1 (line 11) | [KubeListItem("ClusterRoleBinding", "rbac.authorization.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/ClusterRoleBindingV1.cs
  class ClusterRoleBindingV1 (line 11) | [KubeObject("ClusterRoleBinding", "rbac.authorization.k8s.io/v1")]
    method ShouldSerializeSubjects (line 40) | public bool ShouldSerializeSubjects() => Subjects.Count > 0;

FILE: src/KubeClient/Models/generated/ClusterRoleBindingV1Alpha1.cs
  class ClusterRoleBindingV1Alpha1 (line 11) | [KubeObject("ClusterRoleBinding", "rbac.authorization.k8s.io/v1alpha1")]
    method ShouldSerializeSubjects (line 40) | public bool ShouldSerializeSubjects() => Subjects.Count > 0;

FILE: src/KubeClient/Models/generated/ClusterRoleBindingV1Beta1.cs
  class ClusterRoleBindingV1Beta1 (line 11) | [KubeObject("ClusterRoleBinding", "rbac.authorization.k8s.io/v1beta1")]
    method ShouldSerializeSubjects (line 40) | public bool ShouldSerializeSubjects() => Subjects.Count > 0;

FILE: src/KubeClient/Models/generated/ClusterRoleListV1.cs
  class ClusterRoleListV1 (line 11) | [KubeListItem("ClusterRole", "rbac.authorization.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/ClusterRoleListV1Alpha1.cs
  class ClusterRoleListV1Alpha1 (line 11) | [KubeListItem("ClusterRole", "rbac.authorization.k8s.io/v1alpha1")]

FILE: src/KubeClient/Models/generated/ClusterRoleListV1Beta1.cs
  class ClusterRoleListV1Beta1 (line 11) | [KubeListItem("ClusterRole", "rbac.authorization.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/ClusterRoleV1.cs
  class ClusterRoleV1 (line 11) | [KubeObject("ClusterRole", "rbac.authorization.k8s.io/v1")]
    method ShouldSerializeRules (line 40) | public bool ShouldSerializeRules() => Rules.Count > 0;

FILE: src/KubeClient/Models/generated/ClusterRoleV1Alpha1.cs
  class ClusterRoleV1Alpha1 (line 11) | [KubeObject("ClusterRole", "rbac.authorization.k8s.io/v1alpha1")]

FILE: src/KubeClient/Models/generated/ClusterRoleV1Beta1.cs
  class ClusterRoleV1Beta1 (line 11) | [KubeObject("ClusterRole", "rbac.authorization.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/ClusterTrustBundleListV1Alpha1.cs
  class ClusterTrustBundleListV1Alpha1 (line 11) | [KubeListItem("ClusterTrustBundle", "certificates.k8s.io/v1alpha1")]

FILE: src/KubeClient/Models/generated/ClusterTrustBundleProjectionV1.cs
  class ClusterTrustBundleProjectionV1 (line 11) | public partial class ClusterTrustBundleProjectionV1

FILE: src/KubeClient/Models/generated/ClusterTrustBundleSpecV1Alpha1.cs
  class ClusterTrustBundleSpecV1Alpha1 (line 11) | public partial class ClusterTrustBundleSpecV1Alpha1

FILE: src/KubeClient/Models/generated/ClusterTrustBundleV1Alpha1.cs
  class ClusterTrustBundleV1Alpha1 (line 15) | [KubeObject("ClusterTrustBundle", "certificates.k8s.io/v1alpha1")]

FILE: src/KubeClient/Models/generated/ComponentConditionV1.cs
  class ComponentConditionV1 (line 11) | public partial class ComponentConditionV1

FILE: src/KubeClient/Models/generated/ComponentStatusListV1.cs
  class ComponentStatusListV1 (line 11) | [KubeListItem("ComponentStatus", "v1")]

FILE: src/KubeClient/Models/generated/ComponentStatusV1.cs
  class ComponentStatusV1 (line 11) | [KubeObject("ComponentStatus", "v1")]
    method ShouldSerializeConditions (line 27) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/ConditionV1.cs
  class ConditionV1 (line 11) | public partial class ConditionV1

FILE: src/KubeClient/Models/generated/ConfigMapEnvSourceV1.cs
  class ConfigMapEnvSourceV1 (line 13) | public partial class ConfigMapEnvSourceV1

FILE: src/KubeClient/Models/generated/ConfigMapKeySelectorV1.cs
  class ConfigMapKeySelectorV1 (line 11) | public partial class ConfigMapKeySelectorV1

FILE: src/KubeClient/Models/generated/ConfigMapListV1.cs
  class ConfigMapListV1 (line 11) | [KubeListItem("ConfigMap", "v1")]

FILE: src/KubeClient/Models/generated/ConfigMapNodeConfigSourceV1.cs
  class ConfigMapNodeConfigSourceV1 (line 11) | public partial class ConfigMapNodeConfigSourceV1

FILE: src/KubeClient/Models/generated/ConfigMapProjectionV1.cs
  class ConfigMapProjectionV1 (line 13) | [KubeListItem("KeyToPath", "v1")]
    method ShouldSerializeItems (line 40) | public bool ShouldSerializeItems() => Items.Count > 0;

FILE: src/KubeClient/Models/generated/ConfigMapV1.cs
  class ConfigMapV1 (line 11) | [KubeObject("ConfigMap", "v1")]
    method ShouldSerializeBinaryData (line 35) | public bool ShouldSerializeBinaryData() => BinaryData.Count > 0;
    method ShouldSerializeData (line 47) | public bool ShouldSerializeData() => Data.Count > 0;

FILE: src/KubeClient/Models/generated/ConfigMapVolumeSourceV1.cs
  class ConfigMapVolumeSourceV1 (line 13) | [KubeListItem("KeyToPath", "v1")]
    method ShouldSerializeItems (line 47) | public bool ShouldSerializeItems() => Items.Count > 0;

FILE: src/KubeClient/Models/generated/ContainerImageV1.cs
  class ContainerImageV1 (line 11) | public partial class ContainerImageV1
    method ShouldSerializeNames (line 23) | public bool ShouldSerializeNames() => Names.Count > 0;

FILE: src/KubeClient/Models/generated/ContainerPortV1.cs
  class ContainerPortV1 (line 11) | public partial class ContainerPortV1

FILE: src/KubeClient/Models/generated/ContainerResizePolicyV1.cs
  class ContainerResizePolicyV1 (line 11) | public partial class ContainerResizePolicyV1

FILE: src/KubeClient/Models/generated/ContainerResourceMetricSourceV2.cs
  class ContainerResourceMetricSourceV2 (line 11) | public partial class ContainerResourceMetricSourceV2

FILE: src/KubeClient/Models/generated/ContainerResourceMetricStatusV2.cs
  class ContainerResourceMetricStatusV2 (line 11) | public partial class ContainerResourceMetricStatusV2

FILE: src/KubeClient/Models/generated/ContainerStateRunningV1.cs
  class ContainerStateRunningV1 (line 11) | public partial class ContainerStateRunningV1

FILE: src/KubeClient/Models/generated/ContainerStateTerminatedV1.cs
  class ContainerStateTerminatedV1 (line 11) | public partial class ContainerStateTerminatedV1

FILE: src/KubeClient/Models/generated/ContainerStateV1.cs
  class ContainerStateV1 (line 11) | public partial class ContainerStateV1

FILE: src/KubeClient/Models/generated/ContainerStateWaitingV1.cs
  class ContainerStateWaitingV1 (line 11) | public partial class ContainerStateWaitingV1

FILE: src/KubeClient/Models/generated/ContainerStatusV1.cs
  class ContainerStatusV1 (line 11) | public partial class ContainerStatusV1
    method ShouldSerializeAllocatedResources (line 79) | public bool ShouldSerializeAllocatedResources() => AllocatedResources....
    method ShouldSerializeAllocatedResourcesStatus (line 92) | public bool ShouldSerializeAllocatedResourcesStatus() => AllocatedReso...
    method ShouldSerializeVolumeMounts (line 112) | public bool ShouldSerializeVolumeMounts() => VolumeMounts.Count > 0;

FILE: src/KubeClient/Models/generated/ContainerUserV1.cs
  class ContainerUserV1 (line 11) | public partial class ContainerUserV1

FILE: src/KubeClient/Models/generated/ContainerV1.cs
  class ContainerV1 (line 11) | public partial class ContainerV1
    method ShouldSerializeCommand (line 23) | public bool ShouldSerializeCommand() => Command.Count > 0;
    method ShouldSerializeEnvFrom (line 91) | public bool ShouldSerializeEnvFrom() => EnvFrom.Count > 0;
    method ShouldSerializeArgs (line 117) | public bool ShouldSerializeArgs() => Args.Count > 0;
    method ShouldSerializePorts (line 130) | public bool ShouldSerializePorts() => Ports.Count > 0;
    method ShouldSerializeVolumeDevices (line 150) | public bool ShouldSerializeVolumeDevices() => VolumeDevices.Count > 0;
    method ShouldSerializeVolumeMounts (line 163) | public bool ShouldSerializeVolumeMounts() => VolumeMounts.Count > 0;
    method ShouldSerializeEnv (line 183) | public bool ShouldSerializeEnv() => Env.Count > 0;
    method ShouldSerializeResizePolicy (line 202) | public bool ShouldSerializeResizePolicy() => ResizePolicy.Count > 0;

FILE: src/KubeClient/Models/generated/ControllerRevisionListV1.cs
  class ControllerRevisionListV1 (line 11) | [KubeListItem("ControllerRevision", "apps/v1")]

FILE: src/KubeClient/Models/generated/ControllerRevisionListV1Beta1.cs
  class ControllerRevisionListV1Beta1 (line 11) | [KubeListItem("ControllerRevision", "apps/v1beta1")]

FILE: src/KubeClient/Models/generated/ControllerRevisionListV1Beta2.cs
  class ControllerRevisionListV1Beta2 (line 11) | [KubeListItem("ControllerRevision", "apps/v1beta2")]

FILE: src/KubeClient/Models/generated/ControllerRevisionV1.cs
  class ControllerRevisionV1 (line 11) | [KubeObject("ControllerRevision", "apps/v1")]

FILE: src/KubeClient/Models/generated/ControllerRevisionV1Beta1.cs
  class ControllerRevisionV1Beta1 (line 11) | [KubeObject("ControllerRevision", "apps/v1beta1")]

FILE: src/KubeClient/Models/generated/ControllerRevisionV1Beta2.cs
  class ControllerRevisionV1Beta2 (line 11) | [KubeObject("ControllerRevision", "apps/v1beta2")]

FILE: src/KubeClient/Models/generated/CronJobListV1.cs
  class CronJobListV1 (line 11) | [KubeListItem("CronJob", "batch/v1")]

FILE: src/KubeClient/Models/generated/CronJobListV1Beta1.cs
  class CronJobListV1Beta1 (line 11) | [KubeListItem("CronJob", "batch/v1beta1")]

FILE: src/KubeClient/Models/generated/CronJobListV2Alpha1.cs
  class CronJobListV2Alpha1 (line 11) | [KubeListItem("CronJob", "batch/v2alpha1")]

FILE: src/KubeClient/Models/generated/CronJobSpecV1.cs
  class CronJobSpecV1 (line 11) | public partial class CronJobSpecV1

FILE: src/KubeClient/Models/generated/CronJobSpecV1Beta1.cs
  class CronJobSpecV1Beta1 (line 11) | public partial class CronJobSpecV1Beta1

FILE: src/KubeClient/Models/generated/CronJobSpecV2Alpha1.cs
  class CronJobSpecV2Alpha1 (line 11) | public partial class CronJobSpecV2Alpha1

FILE: src/KubeClient/Models/generated/CronJobStatusV1.cs
  class CronJobStatusV1 (line 11) | public partial class CronJobStatusV1
    method ShouldSerializeActive (line 23) | public bool ShouldSerializeActive() => Active.Count > 0;

FILE: src/KubeClient/Models/generated/CronJobStatusV1Beta1.cs
  class CronJobStatusV1Beta1 (line 11) | public partial class CronJobStatusV1Beta1
    method ShouldSerializeActive (line 23) | public bool ShouldSerializeActive() => Active.Count > 0;

FILE: src/KubeClient/Models/generated/CronJobStatusV2Alpha1.cs
  class CronJobStatusV2Alpha1 (line 11) | public partial class CronJobStatusV2Alpha1
    method ShouldSerializeActive (line 23) | public bool ShouldSerializeActive() => Active.Count > 0;

FILE: src/KubeClient/Models/generated/CronJobV1.cs
  class CronJobV1 (line 11) | [KubeObject("CronJob", "batch/v1")]

FILE: src/KubeClient/Models/generated/CronJobV1Beta1.cs
  class CronJobV1Beta1 (line 11) | [KubeObject("CronJob", "batch/v1beta1")]

FILE: src/KubeClient/Models/generated/CronJobV2Alpha1.cs
  class CronJobV2Alpha1 (line 11) | [KubeObject("CronJob", "batch/v2alpha1")]

FILE: src/KubeClient/Models/generated/CrossVersionObjectReferenceV1.cs
  class CrossVersionObjectReferenceV1 (line 11) | public partial class CrossVersionObjectReferenceV1 : KubeObjectV1

FILE: src/KubeClient/Models/generated/CrossVersionObjectReferenceV2.cs
  class CrossVersionObjectReferenceV2 (line 11) | public partial class CrossVersionObjectReferenceV2 : KubeObjectV1

FILE: src/KubeClient/Models/generated/CrossVersionObjectReferenceV2Beta1.cs
  class CrossVersionObjectReferenceV2Beta1 (line 11) | public partial class CrossVersionObjectReferenceV2Beta1 : KubeObjectV1

FILE: src/KubeClient/Models/generated/CustomResourceColumnDefinitionV1.cs
  class CustomResourceColumnDefinitionV1 (line 11) | public partial class CustomResourceColumnDefinitionV1

FILE: src/KubeClient/Models/generated/CustomResourceColumnDefinitionV1Beta1.cs
  class CustomResourceColumnDefinitionV1Beta1 (line 11) | public partial class CustomResourceColumnDefinitionV1Beta1

FILE: src/KubeClient/Models/generated/CustomResourceConversionV1.cs
  class CustomResourceConversionV1 (line 11) | public partial class CustomResourceConversionV1

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionConditionV1.cs
  class CustomResourceDefinitionConditionV1 (line 11) | public partial class CustomResourceDefinitionConditionV1

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionConditionV1Beta1.cs
  class CustomResourceDefinitionConditionV1Beta1 (line 11) | public partial class CustomResourceDefinitionConditionV1Beta1

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionListV1.cs
  class CustomResourceDefinitionListV1 (line 11) | [KubeListItem("CustomResourceDefinition", "apiextensions.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionListV1Beta1.cs
  class CustomResourceDefinitionListV1Beta1 (line 11) | [KubeListItem("CustomResourceDefinition", "apiextensions.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionNamesV1.cs
  class CustomResourceDefinitionNamesV1 (line 11) | public partial class CustomResourceDefinitionNamesV1
    method ShouldSerializeCategories (line 51) | public bool ShouldSerializeCategories() => Categories.Count > 0;
    method ShouldSerializeShortNames (line 63) | public bool ShouldSerializeShortNames() => ShortNames.Count > 0;

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionNamesV1Beta1.cs
  class CustomResourceDefinitionNamesV1Beta1 (line 11) | public partial class CustomResourceDefinitionNamesV1Beta1
    method ShouldSerializeCategories (line 51) | public bool ShouldSerializeCategories() => Categories.Count > 0;
    method ShouldSerializeShortNames (line 63) | public bool ShouldSerializeShortNames() => ShortNames.Count > 0;

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionSpecV1.cs
  class CustomResourceDefinitionSpecV1 (line 11) | public partial class CustomResourceDefinitionSpecV1

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionSpecV1Beta1.cs
  class CustomResourceDefinitionSpecV1Beta1 (line 11) | public partial class CustomResourceDefinitionSpecV1Beta1
    method ShouldSerializeAdditionalPrinterColumns (line 51) | public bool ShouldSerializeAdditionalPrinterColumns() => AdditionalPri...
    method ShouldSerializeVersions (line 77) | public bool ShouldSerializeVersions() => Versions.Count > 0;

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionStatusV1.cs
  class CustomResourceDefinitionStatusV1 (line 11) | public partial class CustomResourceDefinitionStatusV1
    method ShouldSerializeConditions (line 30) | public bool ShouldSerializeConditions() => Conditions.Count > 0;
    method ShouldSerializeStoredVersions (line 42) | public bool ShouldSerializeStoredVersions() => StoredVersions.Count > 0;

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionStatusV1Beta1.cs
  class CustomResourceDefinitionStatusV1Beta1 (line 11) | public partial class CustomResourceDefinitionStatusV1Beta1

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionV1.cs
  class CustomResourceDefinitionV1 (line 11) | [KubeObject("CustomResourceDefinition", "apiextensions.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionV1Beta1.cs
  class CustomResourceDefinitionV1Beta1 (line 11) | [KubeObject("CustomResourceDefinition", "apiextensions.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionVersionV1.cs
  class CustomResourceDefinitionVersionV1 (line 11) | public partial class CustomResourceDefinitionVersionV1
    method ShouldSerializeAdditionalPrinterColumns (line 65) | public bool ShouldSerializeAdditionalPrinterColumns() => AdditionalPri...
    method ShouldSerializeSelectableFields (line 77) | public bool ShouldSerializeSelectableFields() => SelectableFields.Coun...

FILE: src/KubeClient/Models/generated/CustomResourceDefinitionVersionV1Beta1.cs
  class CustomResourceDefinitionVersionV1Beta1 (line 11) | public partial class CustomResourceDefinitionVersionV1Beta1

FILE: src/KubeClient/Models/generated/CustomResourceSubresourceScaleV1.cs
  class CustomResourceSubresourceScaleV1 (line 11) | public partial class CustomResourceSubresourceScaleV1

FILE: src/KubeClient/Models/generated/CustomResourceSubresourceScaleV1Beta1.cs
  class CustomResourceSubresourceScaleV1Beta1 (line 11) | public partial class CustomResourceSubresourceScaleV1Beta1

FILE: src/KubeClient/Models/generated/CustomResourceSubresourceStatusV1.cs
  class CustomResourceSubresourceStatusV1 (line 11) | public partial class CustomResourceSubresourceStatusV1

FILE: src/KubeClient/Models/generated/CustomResourceSubresourceStatusV1Beta1.cs
  class CustomResourceSubresourceStatusV1Beta1 (line 11) | public partial class CustomResourceSubresourceStatusV1Beta1

FILE: src/KubeClient/Models/generated/CustomResourceSubresourcesV1.cs
  class CustomResourceSubresourcesV1 (line 11) | public partial class CustomResourceSubresourcesV1

FILE: src/KubeClient/Models/generated/CustomResourceSubresourcesV1Beta1.cs
  class CustomResourceSubresourcesV1Beta1 (line 11) | public partial class CustomResourceSubresourcesV1Beta1

FILE: src/KubeClient/Models/generated/CustomResourceValidationV1.cs
  class CustomResourceValidationV1 (line 11) | public partial class CustomResourceValidationV1

FILE: src/KubeClient/Models/generated/CustomResourceValidationV1Beta1.cs
  class CustomResourceValidationV1Beta1 (line 11) | public partial class CustomResourceValidationV1Beta1

FILE: src/KubeClient/Models/generated/DaemonEndpointV1.cs
  class DaemonEndpointV1 (line 11) | public partial class DaemonEndpointV1

FILE: src/KubeClient/Models/generated/DaemonSetConditionV1.cs
  class DaemonSetConditionV1 (line 11) | public partial class DaemonSetConditionV1

FILE: src/KubeClient/Models/generated/DaemonSetConditionV1Beta1.cs
  class DaemonSetConditionV1Beta1 (line 11) | public partial class DaemonSetConditionV1Beta1

FILE: src/KubeClient/Models/generated/DaemonSetConditionV1Beta2.cs
  class DaemonSetConditionV1Beta2 (line 11) | public partial class DaemonSetConditionV1Beta2

FILE: src/KubeClient/Models/generated/DaemonSetListV1.cs
  class DaemonSetListV1 (line 11) | [KubeListItem("DaemonSet", "apps/v1")]

FILE: src/KubeClient/Models/generated/DaemonSetListV1Beta1.cs
  class DaemonSetListV1Beta1 (line 11) | [KubeListItem("DaemonSet", "extensions/v1beta1")]

FILE: src/KubeClient/Models/generated/DaemonSetListV1Beta2.cs
  class DaemonSetListV1Beta2 (line 11) | [KubeListItem("DaemonSet", "apps/v1beta2")]

FILE: src/KubeClient/Models/generated/DaemonSetSpecV1.cs
  class DaemonSetSpecV1 (line 11) | public partial class DaemonSetSpecV1

FILE: src/KubeClient/Models/generated/DaemonSetSpecV1Beta1.cs
  class DaemonSetSpecV1Beta1 (line 11) | public partial class DaemonSetSpecV1Beta1

FILE: src/KubeClient/Models/generated/DaemonSetSpecV1Beta2.cs
  class DaemonSetSpecV1Beta2 (line 11) | public partial class DaemonSetSpecV1Beta2

FILE: src/KubeClient/Models/generated/DaemonSetStatusV1.cs
  class DaemonSetStatusV1 (line 11) | public partial class DaemonSetStatusV1
    method ShouldSerializeConditions (line 73) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/DaemonSetStatusV1Beta1.cs
  class DaemonSetStatusV1Beta1 (line 11) | public partial class DaemonSetStatusV1Beta1
    method ShouldSerializeConditions (line 73) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/DaemonSetStatusV1Beta2.cs
  class DaemonSetStatusV1Beta2 (line 11) | public partial class DaemonSetStatusV1Beta2
    method ShouldSerializeConditions (line 73) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/DaemonSetUpdateStrategyV1.cs
  class DaemonSetUpdateStrategyV1 (line 11) | public partial class DaemonSetUpdateStrategyV1

FILE: src/KubeClient/Models/generated/DaemonSetUpdateStrategyV1Beta1.cs
  class DaemonSetUpdateStrategyV1Beta1 (line 11) | public partial class DaemonSetUpdateStrategyV1Beta1

FILE: src/KubeClient/Models/generated/DaemonSetUpdateStrategyV1Beta2.cs
  class DaemonSetUpdateStrategyV1Beta2 (line 11) | public partial class DaemonSetUpdateStrategyV1Beta2

FILE: src/KubeClient/Models/generated/DaemonSetV1.cs
  class DaemonSetV1 (line 11) | [KubeObject("DaemonSet", "apps/v1")]

FILE: src/KubeClient/Models/generated/DaemonSetV1Beta1.cs
  class DaemonSetV1Beta1 (line 11) | [KubeObject("DaemonSet", "extensions/v1beta1")]

FILE: src/KubeClient/Models/generated/DaemonSetV1Beta2.cs
  class DaemonSetV1Beta2 (line 11) | [KubeObject("DaemonSet", "apps/v1beta2")]

FILE: src/KubeClient/Models/generated/DeploymentConditionV1.cs
  class DeploymentConditionV1 (line 11) | public partial class DeploymentConditionV1

FILE: src/KubeClient/Models/generated/DeploymentConditionV1Beta1.cs
  class DeploymentConditionV1Beta1 (line 11) | public partial class DeploymentConditionV1Beta1

FILE: src/KubeClient/Models/generated/DeploymentConditionV1Beta2.cs
  class DeploymentConditionV1Beta2 (line 11) | public partial class DeploymentConditionV1Beta2

FILE: src/KubeClient/Models/generated/DeploymentListV1.cs
  class DeploymentListV1 (line 11) | [KubeListItem("Deployment", "apps/v1")]

FILE: src/KubeClient/Models/generated/DeploymentListV1Beta1.cs
  class DeploymentListV1Beta1 (line 11) | [KubeListItem("Deployment", "apps/v1beta1")]

FILE: src/KubeClient/Models/generated/DeploymentListV1Beta2.cs
  class DeploymentListV1Beta2 (line 11) | [KubeListItem("Deployment", "apps/v1beta2")]

FILE: src/KubeClient/Models/generated/DeploymentRollbackV1Beta1.cs
  class DeploymentRollbackV1Beta1 (line 11) | public partial class DeploymentRollbackV1Beta1 : KubeObjectV1
    method ShouldSerializeUpdatedAnnotations (line 37) | public bool ShouldSerializeUpdatedAnnotations() => UpdatedAnnotations....

FILE: src/KubeClient/Models/generated/DeploymentSpecV1.cs
  class DeploymentSpecV1 (line 11) | public partial class DeploymentSpecV1

FILE: src/KubeClient/Models/generated/DeploymentSpecV1Beta1.cs
  class DeploymentSpecV1Beta1 (line 11) | public partial class DeploymentSpecV1Beta1

FILE: src/KubeClient/Models/generated/DeploymentSpecV1Beta2.cs
  class DeploymentSpecV1Beta2 (line 11) | public partial class DeploymentSpecV1Beta2

FILE: src/KubeClient/Models/generated/DeploymentStatusV1.cs
  class DeploymentStatusV1 (line 11) | public partial class DeploymentStatusV1
    method ShouldSerializeConditions (line 38) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/DeploymentStatusV1Beta1.cs
  class DeploymentStatusV1Beta1 (line 11) | public partial class DeploymentStatusV1Beta1
    method ShouldSerializeConditions (line 38) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/DeploymentStatusV1Beta2.cs
  class DeploymentStatusV1Beta2 (line 11) | public partial class DeploymentStatusV1Beta2
    method ShouldSerializeConditions (line 38) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/DeploymentStrategyV1.cs
  class DeploymentStrategyV1 (line 11) | public partial class DeploymentStrategyV1

FILE: src/KubeClient/Models/generated/DeploymentStrategyV1Beta1.cs
  class DeploymentStrategyV1Beta1 (line 11) | public partial class DeploymentStrategyV1Beta1

FILE: src/KubeClient/Models/generated/DeploymentStrategyV1Beta2.cs
  class DeploymentStrategyV1Beta2 (line 11) | public partial class DeploymentStrategyV1Beta2

FILE: src/KubeClient/Models/generated/DeploymentV1.cs
  class DeploymentV1 (line 11) | [KubeObject("Deployment", "apps/v1")]

FILE: src/KubeClient/Models/generated/DeploymentV1Beta1.cs
  class DeploymentV1Beta1 (line 11) | [KubeObject("Deployment", "apps/v1beta1")]

FILE: src/KubeClient/Models/generated/DeploymentV1Beta2.cs
  class DeploymentV1Beta2 (line 11) | [KubeObject("Deployment", "apps/v1beta2")]

FILE: src/KubeClient/Models/generated/DeviceAllocationConfigurationV1Alpha3.cs
  class DeviceAllocationConfigurationV1Alpha3 (line 11) | public partial class DeviceAllocationConfigurationV1Alpha3
    method ShouldSerializeRequests (line 37) | public bool ShouldSerializeRequests() => Requests.Count > 0;

FILE: src/KubeClient/Models/generated/DeviceAllocationResultV1Alpha3.cs
  class DeviceAllocationResultV1Alpha3 (line 11) | public partial class DeviceAllocationResultV1Alpha3
    method ShouldSerializeConfig (line 25) | public bool ShouldSerializeConfig() => Config.Count > 0;
    method ShouldSerializeResults (line 37) | public bool ShouldSerializeResults() => Results.Count > 0;

FILE: src/KubeClient/Models/generated/DeviceAttributeV1Alpha3.cs
  class DeviceAttributeV1Alpha3 (line 11) | public partial class DeviceAttributeV1Alpha3

FILE: src/KubeClient/Models/generated/DeviceClaimConfigurationV1Alpha3.cs
  class DeviceClaimConfigurationV1Alpha3 (line 11) | public partial class DeviceClaimConfigurationV1Alpha3
    method ShouldSerializeRequests (line 30) | public bool ShouldSerializeRequests() => Requests.Count > 0;

FILE: src/KubeClient/Models/generated/DeviceClaimV1Alpha3.cs
  class DeviceClaimV1Alpha3 (line 11) | public partial class DeviceClaimV1Alpha3
    method ShouldSerializeConfig (line 23) | public bool ShouldSerializeConfig() => Config.Count > 0;
    method ShouldSerializeConstraints (line 35) | public bool ShouldSerializeConstraints() => Constraints.Count > 0;
    method ShouldSerializeRequests (line 47) | public bool ShouldSerializeRequests() => Requests.Count > 0;

FILE: src/KubeClient/Models/generated/DeviceClassConfigurationV1Alpha3.cs
  class DeviceClassConfigurationV1Alpha3 (line 11) | public partial class DeviceClassConfigurationV1Alpha3

FILE: src/KubeClient/Models/generated/DeviceClassListV1Alpha3.cs
  class DeviceClassListV1Alpha3 (line 11) | [KubeListItem("DeviceClass", "resource.k8s.io/v1alpha3")]

FILE: src/KubeClient/Models/generated/DeviceClassSpecV1Alpha3.cs
  class DeviceClassSpecV1Alpha3 (line 11) | public partial class DeviceClassSpecV1Alpha3
    method ShouldSerializeConfig (line 25) | public bool ShouldSerializeConfig() => Config.Count > 0;
    method ShouldSerializeSelectors (line 37) | public bool ShouldSerializeSelectors() => Selectors.Count > 0;

FILE: src/KubeClient/Models/generated/DeviceClassV1Alpha3.cs
  class DeviceClassV1Alpha3 (line 13) | [KubeObject("DeviceClass", "resource.k8s.io/v1alpha3")]

FILE: src/KubeClient/Models/generated/DeviceConstraintV1Alpha3.cs
  class DeviceConstraintV1Alpha3 (line 11) | public partial class DeviceConstraintV1Alpha3
    method ShouldSerializeRequests (line 34) | public bool ShouldSerializeRequests() => Requests.Count > 0;

FILE: src/KubeClient/Models/generated/DeviceRequestAllocationResultV1Alpha3.cs
  class DeviceRequestAllocationResultV1Alpha3 (line 11) | public partial class DeviceRequestAllocationResultV1Alpha3

FILE: src/KubeClient/Models/generated/DeviceRequestV1Alpha3.cs
  class DeviceRequestV1Alpha3 (line 13) | public partial class DeviceRequestV1Alpha3
    method ShouldSerializeSelectors (line 71) | public bool ShouldSerializeSelectors() => Selectors.Count > 0;

FILE: src/KubeClient/Models/generated/DeviceSelectorV1Alpha3.cs
  class DeviceSelectorV1Alpha3 (line 11) | public partial class DeviceSelectorV1Alpha3

FILE: src/KubeClient/Models/generated/DeviceV1Alpha3.cs
  class DeviceV1Alpha3 (line 11) | public partial class DeviceV1Alpha3

FILE: src/KubeClient/Models/generated/DownwardAPIProjectionV1.cs
  class DownwardAPIProjectionV1 (line 11) | [KubeListItem("DownwardAPIVolumeFile", "v1")]
    method ShouldSerializeItems (line 24) | public bool ShouldSerializeItems() => Items.Count > 0;

FILE: src/KubeClient/Models/generated/DownwardAPIVolumeFileV1.cs
  class DownwardAPIVolumeFileV1 (line 11) | public partial class DownwardAPIVolumeFileV1

FILE: src/KubeClient/Models/generated/DownwardAPIVolumeSourceV1.cs
  class DownwardAPIVolumeSourceV1 (line 11) | [KubeListItem("DownwardAPIVolumeFile", "v1")]
    method ShouldSerializeItems (line 31) | public bool ShouldSerializeItems() => Items.Count > 0;

FILE: src/KubeClient/Models/generated/EmptyDirVolumeSourceV1.cs
  class EmptyDirVolumeSourceV1 (line 11) | public partial class EmptyDirVolumeSourceV1

FILE: src/KubeClient/Models/generated/EndpointAddressV1.cs
  class EndpointAddressV1 (line 11) | public partial class EndpointAddressV1

FILE: src/KubeClient/Models/generated/EndpointConditionsV1.cs
  class EndpointConditionsV1 (line 11) | public partial class EndpointConditionsV1

FILE: src/KubeClient/Models/generated/EndpointHintsV1.cs
  class EndpointHintsV1 (line 11) | public partial class EndpointHintsV1
    method ShouldSerializeForZones (line 23) | public bool ShouldSerializeForZones() => ForZones.Count > 0;

FILE: src/KubeClient/Models/generated/EndpointPortV1.cs
  class EndpointPortV1 (line 11) | public partial class EndpointPortV1

FILE: src/KubeClient/Models/generated/EndpointSliceListV1.cs
  class EndpointSliceListV1 (line 11) | [KubeListItem("EndpointSlice", "discovery.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/EndpointSliceV1.cs
  class EndpointSliceV1 (line 11) | [KubeObject("EndpointSlice", "discovery.k8s.io/v1")]
    method ShouldSerializePorts (line 49) | public bool ShouldSerializePorts() => Ports.Count > 0;

FILE: src/KubeClient/Models/generated/EndpointSubsetV1.cs
  class EndpointSubsetV1 (line 21) | public partial class EndpointSubsetV1
    method ShouldSerializeAddresses (line 33) | public bool ShouldSerializeAddresses() => Addresses.Count > 0;
    method ShouldSerializeNotReadyAddresses (line 45) | public bool ShouldSerializeNotReadyAddresses() => NotReadyAddresses.Co...
    method ShouldSerializePorts (line 57) | public bool ShouldSerializePorts() => Ports.Count > 0;

FILE: src/KubeClient/Models/generated/EndpointV1.cs
  class EndpointV1 (line 11) | public partial class EndpointV1
    method ShouldSerializeDeprecatedTopology (line 72) | public bool ShouldSerializeDeprecatedTopology() => DeprecatedTopology....

FILE: src/KubeClient/Models/generated/EndpointsListV1.cs
  class EndpointsListV1 (line 11) | [KubeListItem("Endpoints", "v1")]

FILE: src/KubeClient/Models/generated/EndpointsV1.cs
  class EndpointsV1 (line 23) | [KubeObject("Endpoints", "v1")]
    method ShouldSerializeSubsets (line 47) | public bool ShouldSerializeSubsets() => Subsets.Count > 0;

FILE: src/KubeClient/Models/generated/EnvFromSourceV1.cs
  class EnvFromSourceV1 (line 11) | public partial class EnvFromSourceV1

FILE: src/KubeClient/Models/generated/EnvVarSourceV1.cs
  class EnvVarSourceV1 (line 11) | public partial class EnvVarSourceV1

FILE: src/KubeClient/Models/generated/EnvVarV1.cs
  class EnvVarV1 (line 11) | public partial class EnvVarV1

FILE: src/KubeClient/Models/generated/EphemeralContainerV1.cs
  class EphemeralContainerV1 (line 13) | public partial class EphemeralContainerV1
    method ShouldSerializeCommand (line 25) | public bool ShouldSerializeCommand() => Command.Count > 0;
    method ShouldSerializeEnvFrom (line 102) | public bool ShouldSerializeEnvFrom() => EnvFrom.Count > 0;
    method ShouldSerializeArgs (line 128) | public bool ShouldSerializeArgs() => Args.Count > 0;
    method ShouldSerializePorts (line 141) | public bool ShouldSerializePorts() => Ports.Count > 0;
    method ShouldSerializeVolumeDevices (line 161) | public bool ShouldSerializeVolumeDevices() => VolumeDevices.Count > 0;
    method ShouldSerializeVolumeMounts (line 174) | public bool ShouldSerializeVolumeMounts() => VolumeMounts.Count > 0;
    method ShouldSerializeEnv (line 194) | public bool ShouldSerializeEnv() => Env.Count > 0;
    method ShouldSerializeResizePolicy (line 213) | public bool ShouldSerializeResizePolicy() => ResizePolicy.Count > 0;

FILE: src/KubeClient/Models/generated/EphemeralVolumeSourceV1.cs
  class EphemeralVolumeSourceV1 (line 11) | public partial class EphemeralVolumeSourceV1

FILE: src/KubeClient/Models/generated/EventListV1.cs
  class EventListV1 (line 11) | [KubeListItem("Event", "v1")]

FILE: src/KubeClient/Models/generated/EventListV1Beta1.cs
  class EventListV1Beta1 (line 11) | [KubeListItem("Event", "events.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/EventSeriesV1.cs
  class EventSeriesV1 (line 11) | public partial class EventSeriesV1

FILE: src/KubeClient/Models/generated/EventSeriesV1Beta1.cs
  class EventSeriesV1Beta1 (line 11) | public partial class EventSeriesV1Beta1

FILE: src/KubeClient/Models/generated/EventSourceV1.cs
  class EventSourceV1 (line 11) | public partial class EventSourceV1

FILE: src/KubeClient/Models/generated/EventV1.cs
  class EventV1 (line 11) | [KubeObject("Event", "v1")]

FILE: src/KubeClient/Models/generated/EventV1Beta1.cs
  class EventV1Beta1 (line 11) | [KubeObject("Event", "events.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/EvictionV1.cs
  class EvictionV1 (line 11) | [KubeObject("Eviction", "policy/v1")]

FILE: src/KubeClient/Models/generated/EvictionV1Beta1.cs
  class EvictionV1Beta1 (line 11) | [KubeObject("Eviction", "policy/v1beta1")]

FILE: src/KubeClient/Models/generated/ExecActionV1.cs
  class ExecActionV1 (line 11) | public partial class ExecActionV1
    method ShouldSerializeCommand (line 23) | public bool ShouldSerializeCommand() => Command.Count > 0;

FILE: src/KubeClient/Models/generated/ExemptPriorityLevelConfigurationV1.cs
  class ExemptPriorityLevelConfigurationV1 (line 11) | public partial class ExemptPriorityLevelConfigurationV1

FILE: src/KubeClient/Models/generated/ExemptPriorityLevelConfigurationV1Beta3.cs
  class ExemptPriorityLevelConfigurationV1Beta3 (line 11) | public partial class ExemptPriorityLevelConfigurationV1Beta3

FILE: src/KubeClient/Models/generated/ExpressionWarningV1.cs
  class ExpressionWarningV1 (line 11) | public partial class ExpressionWarningV1

FILE: src/KubeClient/Models/generated/ExpressionWarningV1Alpha1.cs
  class ExpressionWarningV1Alpha1 (line 11) | public partial class ExpressionWarningV1Alpha1

FILE: src/KubeClient/Models/generated/ExpressionWarningV1Beta1.cs
  class ExpressionWarningV1Beta1 (line 11) | public partial class ExpressionWarningV1Beta1

FILE: src/KubeClient/Models/generated/ExternalDocumentationV1.cs
  class ExternalDocumentationV1 (line 11) | public partial class ExternalDocumentationV1

FILE: src/KubeClient/Models/generated/ExternalDocumentationV1Beta1.cs
  class ExternalDocumentationV1Beta1 (line 11) | public partial class ExternalDocumentationV1Beta1

FILE: src/KubeClient/Models/generated/ExternalMetricSourceV2.cs
  class ExternalMetricSourceV2 (line 11) | public partial class ExternalMetricSourceV2

FILE: src/KubeClient/Models/generated/ExternalMetricSourceV2Beta1.cs
  class ExternalMetricSourceV2Beta1 (line 11) | public partial class ExternalMetricSourceV2Beta1

FILE: src/KubeClient/Models/generated/ExternalMetricStatusV2.cs
  class ExternalMetricStatusV2 (line 11) | public partial class ExternalMetricStatusV2

FILE: src/KubeClient/Models/generated/ExternalMetricStatusV2Beta1.cs
  class ExternalMetricStatusV2Beta1 (line 11) | public partial class ExternalMetricStatusV2Beta1

FILE: src/KubeClient/Models/generated/FCVolumeSourceV1.cs
  class FCVolumeSourceV1 (line 11) | public partial class FCVolumeSourceV1
    method ShouldSerializeTargetWWNs (line 37) | public bool ShouldSerializeTargetWWNs() => TargetWWNs.Count > 0;
    method ShouldSerializeWwids (line 49) | public bool ShouldSerializeWwids() => Wwids.Count > 0;

FILE: src/KubeClient/Models/generated/FSGroupStrategyOptionsV1Beta1.cs
  class FSGroupStrategyOptionsV1Beta1 (line 11) | public partial class FSGroupStrategyOptionsV1Beta1
    method ShouldSerializeRanges (line 30) | public bool ShouldSerializeRanges() => Ranges.Count > 0;

FILE: src/KubeClient/Models/generated/FieldSelectorAttributesV1.cs
  class FieldSelectorAttributesV1 (line 11) | public partial class FieldSelectorAttributesV1
    method ShouldSerializeRequirements (line 30) | public bool ShouldSerializeRequirements() => Requirements.Count > 0;

FILE: src/KubeClient/Models/generated/FieldSelectorRequirementV1.cs
  class FieldSelectorRequirementV1 (line 11) | public partial class FieldSelectorRequirementV1
    method ShouldSerializeValues (line 30) | public bool ShouldSerializeValues() => Values.Count > 0;

FILE: src/KubeClient/Models/generated/FieldsV1.cs
  class FieldsV1 (line 15) | public partial class FieldsV1

FILE: src/KubeClient/Models/generated/FlexPersistentVolumeSourceV1.cs
  class FlexPersistentVolumeSourceV1 (line 11) | public partial class FlexPersistentVolumeSourceV1
    method ShouldSerializeOptions (line 44) | public bool ShouldSerializeOptions() => Options.Count > 0;

FILE: src/KubeClient/Models/generated/FlexVolumeSourceV1.cs
  class FlexVolumeSourceV1 (line 11) | public partial class FlexVolumeSourceV1
    method ShouldSerializeOptions (line 44) | public bool ShouldSerializeOptions() => Options.Count > 0;

FILE: src/KubeClient/Models/generated/FlockerVolumeSourceV1.cs
  class FlockerVolumeSourceV1 (line 11) | public partial class FlockerVolumeSourceV1

FILE: src/KubeClient/Models/generated/FlowDistinguisherMethodV1.cs
  class FlowDistinguisherMethodV1 (line 11) | public partial class FlowDistinguisherMethodV1

FILE: src/KubeClient/Models/generated/FlowDistinguisherMethodV1Beta3.cs
  class FlowDistinguisherMethodV1Beta3 (line 11) | public partial class FlowDistinguisherMethodV1Beta3

FILE: src/KubeClient/Models/generated/FlowSchemaConditionV1.cs
  class FlowSchemaConditionV1 (line 11) | public partial class FlowSchemaConditionV1

FILE: src/KubeClient/Models/generated/FlowSchemaConditionV1Beta3.cs
  class FlowSchemaConditionV1Beta3 (line 11) | public partial class FlowSchemaConditionV1Beta3

FILE: src/KubeClient/Models/generated/FlowSchemaListV1.cs
  class FlowSchemaListV1 (line 11) | [KubeListItem("FlowSchema", "flowcontrol.apiserver.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/FlowSchemaListV1Beta3.cs
  class FlowSchemaListV1Beta3 (line 11) | [KubeListItem("FlowSchema", "flowcontrol.apiserver.k8s.io/v1beta3")]

FILE: src/KubeClient/Models/generated/FlowSchemaSpecV1.cs
  class FlowSchemaSpecV1 (line 11) | public partial class FlowSchemaSpecV1
    method ShouldSerializeRules (line 44) | public bool ShouldSerializeRules() => Rules.Count > 0;

FILE: src/KubeClient/Models/generated/FlowSchemaSpecV1Beta3.cs
  class FlowSchemaSpecV1Beta3 (line 11) | public partial class FlowSchemaSpecV1Beta3
    method ShouldSerializeRules (line 44) | public bool ShouldSerializeRules() => Rules.Count > 0;

FILE: src/KubeClient/Models/generated/FlowSchemaStatusV1.cs
  class FlowSchemaStatusV1 (line 11) | public partial class FlowSchemaStatusV1
    method ShouldSerializeConditions (line 24) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/FlowSchemaStatusV1Beta3.cs
  class FlowSchemaStatusV1Beta3 (line 11) | public partial class FlowSchemaStatusV1Beta3
    method ShouldSerializeConditions (line 24) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/FlowSchemaV1.cs
  class FlowSchemaV1 (line 11) | [KubeObject("FlowSchema", "flowcontrol.apiserver.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/FlowSchemaV1Beta3.cs
  class FlowSchemaV1Beta3 (line 11) | [KubeObject("FlowSchema", "flowcontrol.apiserver.k8s.io/v1beta3")]

FILE: src/KubeClient/Models/generated/ForZoneV1.cs
  class ForZoneV1 (line 11) | public partial class ForZoneV1

FILE: src/KubeClient/Models/generated/GCEPersistentDiskVolumeSourceV1.cs
  class GCEPersistentDiskVolumeSourceV1 (line 13) | public partial class GCEPersistentDiskVolumeSourceV1

FILE: src/KubeClient/Models/generated/GRPCActionV1.cs
  class GRPCActionV1 (line 11) | public partial class GRPCActionV1

FILE: src/KubeClient/Models/generated/GitRepoVolumeSourceV1.cs
  class GitRepoVolumeSourceV1 (line 13) | public partial class GitRepoVolumeSourceV1

FILE: src/KubeClient/Models/generated/GlusterfsPersistentVolumeSourceV1.cs
  class GlusterfsPersistentVolumeSourceV1 (line 11) | public partial class GlusterfsPersistentVolumeSourceV1

FILE: src/KubeClient/Models/generated/GlusterfsVolumeSourceV1.cs
  class GlusterfsVolumeSourceV1 (line 11) | public partial class GlusterfsVolumeSourceV1

FILE: src/KubeClient/Models/generated/GroupSubjectV1.cs
  class GroupSubjectV1 (line 11) | public partial class GroupSubjectV1

FILE: src/KubeClient/Models/generated/GroupSubjectV1Beta3.cs
  class GroupSubjectV1Beta3 (line 11) | public partial class GroupSubjectV1Beta3

FILE: src/KubeClient/Models/generated/GroupVersionForDiscoveryV1.cs
  class GroupVersionForDiscoveryV1 (line 11) | public partial class GroupVersionForDiscoveryV1

FILE: src/KubeClient/Models/generated/GroupVersionResourceV1Alpha1.cs
  class GroupVersionResourceV1Alpha1 (line 11) | public partial class GroupVersionResourceV1Alpha1

FILE: src/KubeClient/Models/generated/HPAScalingPolicyV2.cs
  class HPAScalingPolicyV2 (line 11) | public partial class HPAScalingPolicyV2

FILE: src/KubeClient/Models/generated/HPAScalingRulesV2.cs
  class HPAScalingRulesV2 (line 11) | public partial class HPAScalingRulesV2
    method ShouldSerializePolicies (line 23) | public bool ShouldSerializePolicies() => Policies.Count > 0;

FILE: src/KubeClient/Models/generated/HTTPGetActionV1.cs
  class HTTPGetActionV1 (line 11) | public partial class HTTPGetActionV1
    method ShouldSerializeHttpHeaders (line 37) | public bool ShouldSerializeHttpHeaders() => HttpHeaders.Count > 0;

FILE: src/KubeClient/Models/generated/HTTPHeaderV1.cs
  class HTTPHeaderV1 (line 11) | public partial class HTTPHeaderV1

FILE: src/KubeClient/Models/generated/HTTPIngressPathV1.cs
  class HTTPIngressPathV1 (line 11) | public partial class HTTPIngressPathV1

FILE: src/KubeClient/Models/generated/HTTPIngressPathV1Beta1.cs
  class HTTPIngressPathV1Beta1 (line 11) | public partial class HTTPIngressPathV1Beta1

FILE: src/KubeClient/Models/generated/HTTPIngressRuleValueV1.cs
  class HTTPIngressRuleValueV1 (line 11) | public partial class HTTPIngressRuleValueV1

FILE: src/KubeClient/Models/generated/HTTPIngressRuleValueV1Beta1.cs
  class HTTPIngressRuleValueV1Beta1 (line 11) | public partial class HTTPIngressRuleValueV1Beta1

FILE: src/KubeClient/Models/generated/HandlerV1.cs
  class HandlerV1 (line 11) | public partial class HandlerV1

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerBehaviorV2.cs
  class HorizontalPodAutoscalerBehaviorV2 (line 11) | public partial class HorizontalPodAutoscalerBehaviorV2

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerConditionV2.cs
  class HorizontalPodAutoscalerConditionV2 (line 11) | public partial class HorizontalPodAutoscalerConditionV2

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerConditionV2Beta1.cs
  class HorizontalPodAutoscalerConditionV2Beta1 (line 11) | public partial class HorizontalPodAutoscalerConditionV2Beta1

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerListV1.cs
  class HorizontalPodAutoscalerListV1 (line 11) | [KubeListItem("HorizontalPodAutoscaler", "autoscaling/v1")]

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerListV2.cs
  class HorizontalPodAutoscalerListV2 (line 11) | [KubeListItem("HorizontalPodAutoscaler", "autoscaling/v2")]

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerListV2Beta1.cs
  class HorizontalPodAutoscalerListV2Beta1 (line 11) | [KubeListItem("HorizontalPodAutoscaler", "autoscaling/v2beta1")]

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerSpecV1.cs
  class HorizontalPodAutoscalerSpecV1 (line 11) | public partial class HorizontalPodAutoscalerSpecV1

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerSpecV2.cs
  class HorizontalPodAutoscalerSpecV2 (line 11) | public partial class HorizontalPodAutoscalerSpecV2
    method ShouldSerializeMetrics (line 44) | public bool ShouldSerializeMetrics() => Metrics.Count > 0;

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerSpecV2Beta1.cs
  class HorizontalPodAutoscalerSpecV2Beta1 (line 11) | public partial class HorizontalPodAutoscalerSpecV2Beta1
    method ShouldSerializeMetrics (line 37) | public bool ShouldSerializeMetrics() => Metrics.Count > 0;

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerStatusV1.cs
  class HorizontalPodAutoscalerStatusV1 (line 11) | public partial class HorizontalPodAutoscalerStatusV1

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerStatusV2.cs
  class HorizontalPodAutoscalerStatusV2 (line 11) | public partial class HorizontalPodAutoscalerStatusV2
    method ShouldSerializeConditions (line 38) | public bool ShouldSerializeConditions() => Conditions.Count > 0;
    method ShouldSerializeCurrentMetrics (line 50) | public bool ShouldSerializeCurrentMetrics() => CurrentMetrics.Count > 0;

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerStatusV2Beta1.cs
  class HorizontalPodAutoscalerStatusV2Beta1 (line 11) | public partial class HorizontalPodAutoscalerStatusV2Beta1

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerV1.cs
  class HorizontalPodAutoscalerV1 (line 11) | [KubeObject("HorizontalPodAutoscaler", "autoscaling/v1")]

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerV2.cs
  class HorizontalPodAutoscalerV2 (line 11) | [KubeObject("HorizontalPodAutoscaler", "autoscaling/v2")]

FILE: src/KubeClient/Models/generated/HorizontalPodAutoscalerV2Beta1.cs
  class HorizontalPodAutoscalerV2Beta1 (line 11) | [KubeObject("HorizontalPodAutoscaler", "autoscaling/v2beta1")]

FILE: src/KubeClient/Models/generated/HostAliasV1.cs
  class HostAliasV1 (line 11) | public partial class HostAliasV1
    method ShouldSerializeHostnames (line 30) | public bool ShouldSerializeHostnames() => Hostnames.Count > 0;

FILE: src/KubeClient/Models/generated/HostIPV1.cs
  class HostIPV1 (line 11) | public partial class HostIPV1

FILE: src/KubeClient/Models/generated/HostPathVolumeSourceV1.cs
  class HostPathVolumeSourceV1 (line 11) | public partial class HostPathVolumeSourceV1

FILE: src/KubeClient/Models/generated/HostPortRangeV1Beta1.cs
  class HostPortRangeV1Beta1 (line 11) | public partial class HostPortRangeV1Beta1

FILE: src/KubeClient/Models/generated/IDRangeV1Beta1.cs
  class IDRangeV1Beta1 (line 11) | public partial class IDRangeV1Beta1

FILE: src/KubeClient/Models/generated/IPAddressListV1Beta1.cs
  class IPAddressListV1Beta1 (line 11) | [KubeListItem("IPAddress", "networking.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/IPAddressSpecV1Beta1.cs
  class IPAddressSpecV1Beta1 (line 11) | public partial class IPAddressSpecV1Beta1

FILE: src/KubeClient/Models/generated/IPAddressV1Beta1.cs
  class IPAddressV1Beta1 (line 11) | [KubeObject("IPAddress", "networking.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/IPBlockV1.cs
  class IPBlockV1 (line 11) | public partial class IPBlockV1
    method ShouldSerializeExcept (line 30) | public bool ShouldSerializeExcept() => Except.Count > 0;

FILE: src/KubeClient/Models/generated/IPBlockV1Beta1.cs
  class IPBlockV1Beta1 (line 11) | public partial class IPBlockV1Beta1
    method ShouldSerializeExcept (line 30) | public bool ShouldSerializeExcept() => Except.Count > 0;

FILE: src/KubeClient/Models/generated/ISCSIPersistentVolumeSourceV1.cs
  class ISCSIPersistentVolumeSourceV1 (line 11) | public partial class ISCSIPersistentVolumeSourceV1
    method ShouldSerializePortals (line 79) | public bool ShouldSerializePortals() => Portals.Count > 0;

FILE: src/KubeClient/Models/generated/ISCSIVolumeSourceV1.cs
  class ISCSIVolumeSourceV1 (line 11) | public partial class ISCSIVolumeSourceV1
    method ShouldSerializePortals (line 79) | public bool ShouldSerializePortals() => Portals.Count > 0;

FILE: src/KubeClient/Models/generated/ImageVolumeSourceV1.cs
  class ImageVolumeSourceV1 (line 11) | public partial class ImageVolumeSourceV1

FILE: src/KubeClient/Models/generated/InfoVersion.cs
  class InfoVersion (line 11) | public partial class InfoVersion

FILE: src/KubeClient/Models/generated/IngressBackendV1.cs
  class IngressBackendV1 (line 11) | public partial class IngressBackendV1

FILE: src/KubeClient/Models/generated/IngressBackendV1Beta1.cs
  class IngressBackendV1Beta1 (line 11) | public partial class IngressBackendV1Beta1

FILE: src/KubeClient/Models/generated/IngressClassListV1.cs
  class IngressClassListV1 (line 11) | [KubeListItem("IngressClass", "networking.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/IngressClassParametersReferenceV1.cs
  class IngressClassParametersReferenceV1 (line 11) | public partial class IngressClassParametersReferenceV1

FILE: src/KubeClient/Models/generated/IngressClassSpecV1.cs
  class IngressClassSpecV1 (line 11) | public partial class IngressClassSpecV1

FILE: src/KubeClient/Models/generated/IngressClassV1.cs
  class IngressClassV1 (line 11) | [KubeObject("IngressClass", "networking.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/IngressListV1.cs
  class IngressListV1 (line 11) | [KubeListItem("Ingress", "networking.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/IngressListV1Beta1.cs
  class IngressListV1Beta1 (line 11) | [KubeListItem("Ingress", "extensions/v1beta1")]

FILE: src/KubeClient/Models/generated/IngressLoadBalancerIngressV1.cs
  class IngressLoadBalancerIngressV1 (line 11) | public partial class IngressLoadBalancerIngressV1
    method ShouldSerializePorts (line 37) | public bool ShouldSerializePorts() => Ports.Count > 0;

FILE: src/KubeClient/Models/generated/IngressLoadBalancerStatusV1.cs
  class IngressLoadBalancerStatusV1 (line 11) | public partial class IngressLoadBalancerStatusV1
    method ShouldSerializeIngress (line 23) | public bool ShouldSerializeIngress() => Ingress.Count > 0;

FILE: src/KubeClient/Models/generated/IngressPortStatusV1.cs
  class IngressPortStatusV1 (line 11) | public partial class IngressPortStatusV1

FILE: src/KubeClient/Models/generated/IngressRuleV1.cs
  class IngressRuleV1 (line 11) | public partial class IngressRuleV1

FILE: src/KubeClient/Models/generated/IngressRuleV1Beta1.cs
  class IngressRuleV1Beta1 (line 11) | public partial class IngressRuleV1Beta1

FILE: src/KubeClient/Models/generated/IngressServiceBackendV1.cs
  class IngressServiceBackendV1 (line 11) | public partial class IngressServiceBackendV1

FILE: src/KubeClient/Models/generated/IngressSpecV1.cs
  class IngressSpecV1 (line 11) | public partial class IngressSpecV1
    method ShouldSerializeRules (line 37) | public bool ShouldSerializeRules() => Rules.Count > 0;
    method ShouldSerializeTls (line 49) | public bool ShouldSerializeTls() => Tls.Count > 0;

FILE: src/KubeClient/Models/generated/IngressSpecV1Beta1.cs
  class IngressSpecV1Beta1 (line 11) | public partial class IngressSpecV1Beta1
    method ShouldSerializeRules (line 30) | public bool ShouldSerializeRules() => Rules.Count > 0;
    method ShouldSerializeTls (line 42) | public bool ShouldSerializeTls() => Tls.Count > 0;

FILE: src/KubeClient/Models/generated/IngressStatusV1.cs
  class IngressStatusV1 (line 11) | public partial class IngressStatusV1

FILE: src/KubeClient/Models/generated/IngressStatusV1Beta1.cs
  class IngressStatusV1Beta1 (line 11) | public partial class IngressStatusV1Beta1

FILE: src/KubeClient/Models/generated/IngressTLSV1.cs
  class IngressTLSV1 (line 11) | public partial class IngressTLSV1
    method ShouldSerializeHosts (line 30) | public bool ShouldSerializeHosts() => Hosts.Count > 0;

FILE: src/KubeClient/Models/generated/IngressTLSV1Beta1.cs
  class IngressTLSV1Beta1 (line 11) | public partial class IngressTLSV1Beta1
    method ShouldSerializeHosts (line 30) | public bool ShouldSerializeHosts() => Hosts.Count > 0;

FILE: src/KubeClient/Models/generated/IngressV1.cs
  class IngressV1 (line 11) | [KubeObject("Ingress", "networking.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/IngressV1Beta1.cs
  class IngressV1Beta1 (line 11) | [KubeObject("Ingress", "extensions/v1beta1")]

FILE: src/KubeClient/Models/generated/InitializerConfigurationListV1Alpha1.cs
  class InitializerConfigurationListV1Alpha1 (line 11) | [KubeListItem("InitializerConfiguration", "admissionregistration.k8s.io/...

FILE: src/KubeClient/Models/generated/InitializerConfigurationV1Alpha1.cs
  class InitializerConfigurationV1Alpha1 (line 11) | [KubeObject("InitializerConfiguration", "admissionregistration.k8s.io/v1...
    method ShouldSerializeInitializers (line 34) | public bool ShouldSerializeInitializers() => Initializers.Count > 0;

FILE: src/KubeClient/Models/generated/InitializerV1.cs
  class InitializerV1 (line 11) | public partial class InitializerV1

FILE: src/KubeClient/Models/generated/InitializerV1Alpha1.cs
  class InitializerV1Alpha1 (line 11) | public partial class InitializerV1Alpha1
    method ShouldSerializeRules (line 30) | public bool ShouldSerializeRules() => Rules.Count > 0;

FILE: src/KubeClient/Models/generated/InitializersV1.cs
  class InitializersV1 (line 11) | public partial class InitializersV1

FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrArrayV1.cs
  class JSONSchemaPropsOrArrayV1 (line 11) | public partial class JSONSchemaPropsOrArrayV1

FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrBoolV1.cs
  class JSONSchemaPropsOrBoolV1 (line 11) | public partial class JSONSchemaPropsOrBoolV1

FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrBoolV1Beta1.cs
  class JSONSchemaPropsOrBoolV1Beta1 (line 11) | public partial class JSONSchemaPropsOrBoolV1Beta1

FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrStringArrayV1.cs
  class JSONSchemaPropsOrStringArrayV1 (line 11) | public partial class JSONSchemaPropsOrStringArrayV1

FILE: src/KubeClient/Models/generated/JSONSchemaPropsOrStringArrayV1Beta1.cs
  class JSONSchemaPropsOrStringArrayV1Beta1 (line 10) | public partial class JSONSchemaPropsOrStringArrayV1Beta1

FILE: src/KubeClient/Models/generated/JSONSchemaPropsV1.cs
  class JSONSchemaPropsV1 (line 12) | public partial class JSONSchemaPropsV1
    method ShouldSerializeRequired (line 38) | public bool ShouldSerializeRequired() => Required.Count > 0;
    method ShouldSerializeAllOf (line 126) | public bool ShouldSerializeAllOf() => AllOf.Count > 0;
    method ShouldSerializeAnyOf (line 138) | public bool ShouldSerializeAnyOf() => AnyOf.Count > 0;
    method ShouldSerializeOneOf (line 157) | public bool ShouldSerializeOneOf() => OneOf.Count > 0;
    method ShouldSerializeEnum (line 199) | public bool ShouldSerializeEnum() => Enum.Count > 0;
    method ShouldSerializeDefinitions (line 267) | public bool ShouldSerializeDefinitions() => Definitions.Count > 0;
    method ShouldSerializeDependencies (line 279) | public bool ShouldSerializeDependencies() => Dependencies.Count > 0;
    method ShouldSerializePatternProperties (line 333) | public bool ShouldSerializePatternProperties() => PatternProperties.Co...
    method ShouldSerializeProperties (line 345) | public bool ShouldSerializeProperties() => Properties.Count > 0;
    method ShouldSerializeKubernetesListMapKeys (line 368) | public bool ShouldSerializeKubernetesListMapKeys() => KubernetesListMa...
    method ShouldSerializeKubernetesValidations (line 388) | public bool ShouldSerializeKubernetesValidations() => KubernetesValida...

FILE: src/KubeClient/Models/generated/JSONSchemaPropsV1Beta1.cs
  class JSONSchemaPropsV1Beta1 (line 11) | public partial class JSONSchemaPropsV1Beta1
    method ShouldSerializeRequired (line 37) | public bool ShouldSerializeRequired() => Required.Count > 0;
    method ShouldSerializeAllOf (line 77) | public bool ShouldSerializeAllOf() => AllOf.Count > 0;
    method ShouldSerializeAnyOf (line 89) | public bool ShouldSerializeAnyOf() => AnyOf.Count > 0;
    method ShouldSerializeOneOf (line 108) | public bool ShouldSerializeOneOf() => OneOf.Count > 0;
    method ShouldSerializeEnum (line 134) | public bool ShouldSerializeEnum() => Enum.Count > 0;
    method ShouldSerializeDefinitions (line 202) | public bool ShouldSerializeDefinitions() => Definitions.Count > 0;
    method ShouldSerializeDependencies (line 214) | public bool ShouldSerializeDependencies() => Dependencies.Count > 0;
    method ShouldSerializePatternProperties (line 268) | public bool ShouldSerializePatternProperties() => PatternProperties.Co...
    method ShouldSerializeProperties (line 280) | public bool ShouldSerializeProperties() => Properties.Count > 0;

FILE: src/KubeClient/Models/generated/JSONV1Beta1.cs
  class JSONV1Beta1 (line 11) | public partial class JSONV1Beta1

FILE: src/KubeClient/Models/generated/JobConditionV1.cs
  class JobConditionV1 (line 11) | public partial class JobConditionV1

FILE: src/KubeClient/Models/generated/JobListV1.cs
  class JobListV1 (line 11) | [KubeListItem("Job", "batch/v1")]

FILE: src/KubeClient/Models/generated/JobSpecV1.cs
  class JobSpecV1 (line 11) | public partial class JobSpecV1

FILE: src/KubeClient/Models/generated/JobStatusV1.cs
  class JobStatusV1 (line 11) | public partial class JobStatusV1
    method ShouldSerializeConditions (line 81) | public bool ShouldSerializeConditions() => Conditions.Count > 0;

FILE: src/KubeClient/Models/generated/JobTemplateSpecV1.cs
  class JobTemplateSpecV1 (line 11) | public partial class JobTemplateSpecV1

FILE: src/KubeClient/Models/generated/JobTemplateSpecV1Beta1.cs
  class JobTemplateSpecV1Beta1 (line 11) | public partial class JobTemplateSpecV1Beta1

FILE: src/KubeClient/Models/generated/JobTemplateSpecV2Alpha1.cs
  class JobTemplateSpecV2Alpha1 (line 11) | public partial class JobTemplateSpecV2Alpha1

FILE: src/KubeClient/Models/generated/JobV1.cs
  class JobV1 (line 11) | [KubeObject("Job", "batch/v1")]

FILE: src/KubeClient/Models/generated/KeyToPathV1.cs
  class KeyToPathV1 (line 11) | public partial class KeyToPathV1

FILE: src/KubeClient/Models/generated/LabelSelectorAttributesV1.cs
  class LabelSelectorAttributesV1 (line 11) | public partial class LabelSelectorAttributesV1
    method ShouldSerializeRequirements (line 30) | public bool ShouldSerializeRequirements() => Requirements.Count > 0;

FILE: src/KubeClient/Models/generated/LabelSelectorRequirementV1.cs
  class LabelSelectorRequirementV1 (line 11) | public partial class LabelSelectorRequirementV1
    method ShouldSerializeValues (line 30) | public bool ShouldSerializeValues() => Values.Count > 0;

FILE: src/KubeClient/Models/generated/LabelSelectorV1.cs
  class LabelSelectorV1 (line 11) | public partial class LabelSelectorV1
    method ShouldSerializeMatchExpressions (line 23) | public bool ShouldSerializeMatchExpressions() => MatchExpressions.Coun...
    method ShouldSerializeMatchLabels (line 35) | public bool ShouldSerializeMatchLabels() => MatchLabels.Count > 0;

FILE: src/KubeClient/Models/generated/LeaseCandidateListV1Alpha1.cs
  class LeaseCandidateListV1Alpha1 (line 11) | [KubeListItem("LeaseCandidate", "coordination.k8s.io/v1alpha1")]

FILE: src/KubeClient/Models/generated/LeaseCandidateSpecV1Alpha1.cs
  class LeaseCandidateSpecV1Alpha1 (line 11) | public partial class LeaseCandidateSpecV1Alpha1

FILE: src/KubeClient/Models/generated/LeaseCandidateV1Alpha1.cs
  class LeaseCandidateV1Alpha1 (line 11) | [KubeObject("LeaseCandidate", "coordination.k8s.io/v1alpha1")]

FILE: src/KubeClient/Models/generated/LeaseListV1.cs
  class LeaseListV1 (line 11) | [KubeListItem("Lease", "coordination.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/LeaseSpecV1.cs
  class LeaseSpecV1 (line 11) | public partial class LeaseSpecV1

FILE: src/KubeClient/Models/generated/LeaseV1.cs
  class LeaseV1 (line 11) | [KubeObject("Lease", "coordination.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/LifecycleHandlerV1.cs
  class LifecycleHandlerV1 (line 11) | public partial class LifecycleHandlerV1

FILE: src/KubeClient/Models/generated/LifecycleV1.cs
  class LifecycleV1 (line 11) | public partial class LifecycleV1

FILE: src/KubeClient/Models/generated/LimitRangeItemV1.cs
  class LimitRangeItemV1 (line 11) | public partial class LimitRangeItemV1
    method ShouldSerializeMin (line 30) | public bool ShouldSerializeMin() => Min.Count > 0;
    method ShouldSerializeMaxLimitRequestRatio (line 42) | public bool ShouldSerializeMaxLimitRequestRatio() => MaxLimitRequestRa...
    method ShouldSerializeDefault (line 54) | public bool ShouldSerializeDefault() => Default.Count > 0;
    method ShouldSerializeDefaultRequest (line 66) | public bool ShouldSerializeDefaultRequest() => DefaultRequest.Count > 0;
    method ShouldSerializeMax (line 78) | public bool ShouldSerializeMax() => Max.Count > 0;

FILE: src/KubeClient/Models/generated/LimitRangeListV1.cs
  class LimitRangeListV1 (line 11) | [KubeListItem("LimitRange", "v1")]

FILE: src/KubeClient/Models/generated/LimitRangeSpecV1.cs
  class LimitRangeSpecV1 (line 11) | public partial class LimitRangeSpecV1

FILE: src/KubeClient/Models/generated/LimitRangeV1.cs
  class LimitRangeV1 (line 11) | [KubeObject("LimitRange", "v1")]

FILE: src/KubeClient/Models/generated/LimitResponseV1.cs
  class LimitResponseV1 (line 11) | public partial class LimitResponseV1

FILE: src/KubeClient/Models/generated/LimitResponseV1Beta3.cs
  class LimitResponseV1Beta3 (line 11) | public partial class LimitResponseV1Beta3

FILE: src/KubeClient/Models/generated/LimitedPriorityLevelConfigurationV1.cs
  class LimitedPriorityLevelConfigurationV1 (line 13) | public partial class LimitedPriorityLevelConfigurationV1

FILE: src/KubeClient/Models/generated/LimitedPriorityLevelConfigurationV1Beta3.cs
  class LimitedPriorityLevelConfigurationV1Beta3 (line 13) | public partial class LimitedPriorityLevelConfigurationV1Beta3

FILE: src/KubeClient/Models/generated/LinuxContainerUserV1.cs
  class LinuxContainerUserV1 (line 11) | public partial class LinuxContainerUserV1
    method ShouldSerializeSupplementalGroups (line 37) | public bool ShouldSerializeSupplementalGroups() => SupplementalGroups....

FILE: src/KubeClient/Models/generated/ListMetaV1.cs
  class ListMetaV1 (line 11) | public partial class ListMetaV1

FILE: src/KubeClient/Models/generated/LoadBalancerIngressV1.cs
  class LoadBalancerIngressV1 (line 11) | public partial class LoadBalancerIngressV1
    method ShouldSerializePorts (line 44) | public bool ShouldSerializePorts() => Ports.Count > 0;

FILE: src/KubeClient/Models/generated/LoadBalancerStatusV1.cs
  class LoadBalancerStatusV1 (line 11) | public partial class LoadBalancerStatusV1
    method ShouldSerializeIngress (line 23) | public bool ShouldSerializeIngress() => Ingress.Count > 0;

FILE: src/KubeClient/Models/generated/LocalObjectReferenceV1.cs
  class LocalObjectReferenceV1 (line 11) | public partial class LocalObjectReferenceV1

FILE: src/KubeClient/Models/generated/LocalSubjectAccessReviewV1.cs
  class LocalSubjectAccessReviewV1 (line 11) | [KubeObject("LocalSubjectAccessReview", "authorization.k8s.io/v1")]

FILE: src/KubeClient/Models/generated/LocalSubjectAccessReviewV1Beta1.cs
  class LocalSubjectAccessReviewV1Beta1 (line 11) | [KubeObject("LocalSubjectAccessReview", "authorization.k8s.io/v1beta1")]

FILE: src/KubeClient/Models/generated/LocalVolumeSourceV1.cs
  class LocalVolumeSourceV1 (line 11) | public partial class LocalVolumeSourceV1

FILE: src/KubeClient/Models/generated/ManagedFieldsEntryV1.cs
  class ManagedFieldsEntryV1 (line 11) | public partial class ManagedFieldsEntryV1

FILE: src/KubeClient/Models/generated/MatchConditionV1.cs
  class MatchConditionV1 (line 11) | public partial class MatchConditionV1

FILE: src/KubeClient/Models/generated/MatchConditionV1Alpha1.cs
  class MatchConditionV1Alpha1 (line 11) | public partial class MatchConditionV1Alpha1

FILE: src/KubeClient/Models/generated/MatchConditionV1Beta1.cs
  class MatchConditionV1Beta1 (line 11) | public partial class MatchConditionV1Beta1

FILE: src/KubeClient/Models/generated/MatchResourcesV1.cs
  class MatchResourcesV1 (line 11) | public partial class MatchResourcesV1
    method ShouldSerializeExcludeResourceRules (line 67) | public bool ShouldSerializeExcludeResourceRules() => ExcludeResourceRu...
    method ShouldSerializeResourceRules (line 79) | public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0;

FILE: src/KubeClient/Models/generated/MatchResourcesV1Alpha1.cs
  class MatchResourcesV1Alpha1 (line 11) | public partial class MatchResourcesV1Alpha1
    method ShouldSerializeExcludeResourceRules (line 67) | public bool ShouldSerializeExcludeResourceRules() => ExcludeResourceRu...
    method ShouldSerializeResourceRules (line 79) | public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0;

FILE: src/KubeClient/Models/generated/MatchResourcesV1Beta1.cs
  class MatchResourcesV1Beta1 (line 11) | public partial class MatchResourcesV1Beta1
    method ShouldSerializeExcludeResourceRules (line 67) | public bool ShouldSerializeExcludeResourceRules() => ExcludeResourceRu...
    method ShouldSerializeResourceRules (line 79) | public bool ShouldSerializeResourceRules() => ResourceRules.Count > 0;

FILE: src/KubeClient/Models/generated/MetricIdentifierV2.cs
  class MetricIdentifierV2 (line 11) | public partial class MetricIdentifierV2

FILE: src/KubeClient/Models/generated/MetricSpecV2.cs
  class MetricSpecV2 (line 11) | public partial class MetricSpecV2

FILE: src/KubeClient/Models/generated/MetricSpecV2Beta1.cs
  class MetricSpecV2Beta1 (line 11) | public partial class MetricSpecV2Beta1

FILE: src/KubeClient/Models/generated/MetricStatusV2.cs
  class MetricStatusV2 (line 11) | public partial class MetricStatusV2

FILE: src/KubeClient/Models/generated/MetricStatusV2Beta1.cs
  class MetricStatusV2Beta1 (line 11) | public partial class MetricStatusV2Beta1

FILE: src/KubeClient/Models/generated/MetricTargetV2.cs
  class MetricTargetV2 (line 11) | public partial class MetricTargetV2

FILE: src/KubeClient/Models/generated/MetricValueStatusV2.cs
  class MetricValueStatusV2 (line 11) | public partial class MetricValueStatusV2

FILE: src/KubeClient/Models/generated/MigrationConditionV1Alpha1.cs
  class MigrationConditionV1Alpha1 (line 11) | public partial class MigrationConditionV1Alpha1

FILE: src/KubeClient/Models/generated/ModifyVolumeStatusV1.cs
  class ModifyVolumeStatusV1 (line 11) | public partial class ModifyVolumeStatusV1

FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationListV1.cs
  class MutatingWebhookConfigurationListV1 (line 11) | [KubeListItem("MutatingWebhookConfiguration", "admissionregistration.k8s...

FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationListV1Beta1.cs
  class MutatingWebhookConfigurationListV1Beta1 (line 11) | [KubeListItem("MutatingWebhookConfiguration", "admissionregistration.k8s...

FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationV1.cs
  class MutatingWebhookConfigurationV1 (line 11) | [KubeObject("MutatingWebhookConfiguration", "admissionregistration.k8s.i...
    method ShouldSerializeWebhooks (line 34) | public bool ShouldSerializeWebhooks() => Webhooks.Count > 0;

FILE: src/KubeClient/Models/generated/MutatingWebhookConfigurationV1Beta1.cs
  class MutatingWebhookConfigurationV1Beta1 (line 11) | [KubeObject("MutatingWebhookConfiguration", "admissionregistration.k8s.i...
    method ShouldSerializeWebhooks (line 34) | public bool ShouldSerializeWebhooks() => Webhooks.Count > 0;

FILE: src/KubeClient/Models/generated/MutatingWebhookV1.cs
  class MutatingWebhookV1 (line 11) | public partial class MutatingWebhookV1
    method ShouldSerializeMatchConditions (line 96) | public bool ShouldSerializeMatchConditions() => MatchConditions.Count ...
    method ShouldSerializeRules (line 108) | public bool ShouldSerializeRules() => Rules.Count > 0;

FILE: src/KubeClient/Models/generated/NFSVolumeSourceV1.cs
  class NFSVolumeSourceV1 (line 11) | public partial class NFSVolumeSourceV1

FILE: src/KubeClient/Models/generated/NamedRuleWithOperationsV1.cs
  class NamedRuleWithOperationsV1 (line 11) | public partial class NamedRuleWithOperationsV1
    method ShouldSerializeApiGroups (line 30) | public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0;
    method ShouldSerializeApiVersions (line 42) | public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0;
    method ShouldSerializeOperations (line 54) | public bool ShouldSerializeOperations() => Operations.Count > 0;
    method ShouldSerializeResourceNames (line 66) | public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0;
    method ShouldSerializeResources (line 84) | public bool ShouldSerializeResources() => Resources.Count > 0;

FILE: src/KubeClient/Models/generated/NamedRuleWithOperationsV1Alpha1.cs
  class NamedRuleWithOperationsV1Alpha1 (line 11) | public partial class NamedRuleWithOperationsV1Alpha1
    method ShouldSerializeApiGroups (line 30) | public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0;
    method ShouldSerializeApiVersions (line 42) | public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0;
    method ShouldSerializeOperations (line 54) | public bool ShouldSerializeOperations() => Operations.Count > 0;
    method ShouldSerializeResourceNames (line 66) | public bool ShouldSerializeResourceNames() => ResourceNames.Count > 0;
    method ShouldSerializeResources (line 84) | public bool ShouldSerializeResources() => Resources.Count > 0;

FILE: src/KubeClient/Models/generated/NamedRuleWithOperationsV1Beta1.cs
  class NamedRuleWithOperationsV1Beta1 (line 11) | public partial class NamedRuleWithOperationsV1Beta1
    method ShouldSerializeApiGroups (line 30) | public bool ShouldSerializeApiGroups() => ApiGroups.Count > 0;
    method ShouldSerializeApiVersions (line 42) | public bool ShouldSerializeApiVersions() => ApiVersions.Count > 0;
    method ShouldSerializeOperations (line 54) | public bool ShouldSerializeOperations() => Operations.Count > 0;
    method ShouldSerializeResourceNames (line 66) | public bool ShouldSerializeReso
Copy disabled (too large) Download .json
Condensed preview — 1203 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,256K chars).
[
  {
    "path": ".editorconfig",
    "chars": 2875,
    "preview": "root = true\n\n[*]\nindent_style = space\n\n# Code files\n[*.{cs,csx,vb,vbx}]\nindent_size = 4\n\n# Xml project files\n[*.{csproj,"
  },
  {
    "path": ".gitignore",
    "chars": 5373,
    "preview": "## Mac\n\n.DS_Store\n\n## GitVersion\n\nversion-info.json\n\n# VS Code\n\n.vscode/*\n\n## Visual Studio\n\n# User-specific files\n*.suo"
  },
  {
    "path": "GitVersion.yml",
    "chars": 1223,
    "preview": "# Versioning scheme for KubeClient\n\nassembly-versioning-scheme: Major\nmode: ContinuousDelivery\nignore:\n  sha: []\n\nbranch"
  },
  {
    "path": "ISSUE",
    "chars": 1257,
    "preview": "** Microsoft .NET Core Framework (CoreFX)\n**\n** https://github.com/dotnet/corefx/blob/fab6ae579aff17cb9b464b2b167b7dfd8f"
  },
  {
    "path": "KubeClient.sln",
    "chars": 32804,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.8.3430"
  },
  {
    "path": "LICENSE",
    "chars": 1070,
    "preview": "MIT License\n\nCopyright (c) 2018 Adam Friedman\n\nPermission is hereby granted, free of charge, to any person obtaining a c"
  },
  {
    "path": "NuGet.config",
    "chars": 272,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <add key=\"HTTPlease\" value=\"https://www.m"
  },
  {
    "path": "Package-README.md",
    "chars": 14140,
    "preview": "# KubeClient\n\n[![Build Status](https://dev.azure.com/tintoy-dev/dotnet-kube-client/_apis/build/status%2Ftintoy.dotnet-ku"
  },
  {
    "path": "README.md",
    "chars": 14144,
    "preview": "# KubeClient\n\n[![Build Status](https://dev.azure.com/tintoy-dev/dotnet-kube-client/_apis/build/status%2Ftintoy.dotnet-ku"
  },
  {
    "path": "azure-pipelines.yml",
    "chars": 4484,
    "preview": "trigger:\n  branches:\n    include:\n      - master\n      - develop\n      - feature/*\n      - release/*\n\n  tags:\n    includ"
  },
  {
    "path": "global.json",
    "chars": 81,
    "preview": "{\n  \"sdk\": {\n    \"version\": \"10.0.100\",\n    \"rollForward\":  \"latestFeature\"\n  }\n}"
  },
  {
    "path": "samples/ConfigFromConfigMap/ConfigFromConfigMap.csproj",
    "chars": 1103,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net10.0</Targ"
  },
  {
    "path": "samples/ConfigFromConfigMap/Program.cs",
    "chars": 13487,
    "preview": "using Microsoft.Extensions.Configuration;\nusing Microsoft.Extensions.DependencyInjection;\nusing Microsoft.Extensions.Lo"
  },
  {
    "path": "samples/ConfigFromConfigMap/ProgramOptions.cs",
    "chars": 1126,
    "preview": "using CommandLine;\n\nnamespace KubeClient.Samples.ConfigFromConfigMap\n{\n    /// <summary>\n    ///     Program options for"
  },
  {
    "path": "samples/DeploymentWithRollback/DeploymentWithRollback.csproj",
    "chars": 981,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net10.0</Tar"
  },
  {
    "path": "samples/DeploymentWithRollback/Program.cs",
    "chars": 20595,
    "preview": "using Microsoft.Extensions.DependencyInjection;\nusing Microsoft.Extensions.Logging;\nusing System;\nusing System.Collecti"
  },
  {
    "path": "samples/DeploymentWithRollback/ProgramOptions.cs",
    "chars": 1684,
    "preview": "using CommandLine;\n\nnamespace KubeClient.Samples.DeploymentWithRollback\n{\n    /// <summary>\n    ///     Program options "
  },
  {
    "path": "samples/Directory.Build.props",
    "chars": 215,
    "preview": "<Project>\n  <!-- Common settings for projects -->\n  <PropertyGroup>\n    <LangVersion>latest</LangVersion>\n    \n    <!-- "
  },
  {
    "path": "samples/ExtensionsSample/ExtensionsSample.csproj",
    "chars": 1406,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net10.0</Targ"
  },
  {
    "path": "samples/ExtensionsSample/Program.cs",
    "chars": 1279,
    "preview": "using System;\nusing System.Linq;\nusing KubeClient;\nusing KubeClient.Extensions.Configuration;\nusing Microsoft.Extension"
  },
  {
    "path": "samples/ExtensionsSample/thing-configmap.yaml",
    "chars": 206,
    "preview": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: extensions-sample\n  labels:\n    name: extensions-sample\ndata:\n  thing.e"
  },
  {
    "path": "samples/WatchEvents/Program.cs",
    "chars": 9970,
    "preview": "using Microsoft.Extensions.DependencyInjection;\nusing Microsoft.Extensions.Logging;\nusing Newtonsoft.Json;\nusing System"
  },
  {
    "path": "samples/WatchEvents/ProgramOptions.cs",
    "chars": 1414,
    "preview": "using CommandLine;\n\nnamespace KubeClient.Samples.WatchEvents\n{\n    /// <summary>\n    ///     Program options for WatchE"
  },
  {
    "path": "samples/WatchEvents/WatchEvents.csproj",
    "chars": 1129,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <TargetFramework>net10.0</Targ"
  },
  {
    "path": "samples/noob-exec/NoobExec.csproj",
    "chars": 1063,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <OutputType>Exe</OutputType>\n    <AssemblyName>noob-exec</Assem"
  },
  {
    "path": "samples/noob-exec/Program.cs",
    "chars": 8894,
    "preview": "using Microsoft.Extensions.DependencyInjection;\nusing Microsoft.Extensions.Logging;\nusing System;\nusing System.IO;\nusin"
  },
  {
    "path": "samples/noob-exec/ProgramOptions.cs",
    "chars": 2601,
    "preview": "using CommandLine;\n\nnamespace KubeClient.Samples.NoobExec\n{\n    /// <summary>\n    ///     Program options for NoobExec.\n"
  },
  {
    "path": "src/Common.props",
    "chars": 1018,
    "preview": "<Project>\n  <!-- Common settings for projects -->\n  <PropertyGroup>\n    <LangVersion>latest</LangVersion>\n    <GenerateD"
  },
  {
    "path": "src/KubeClient/ApiMetadata/ApiMetadataExtensions.cs",
    "chars": 1134,
    "preview": "using KubeClient.Models;\nusing System;\nusing System.Linq;\n\nnamespace KubeClient.ApiMetadata\n{\n    /// <summary>\n    ///"
  },
  {
    "path": "src/KubeClient/ApiMetadata/KubeApiMetadata.cs",
    "chars": 4921,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace KubeClient.ApiMetadata\n{\n    /// <summary>"
  },
  {
    "path": "src/KubeClient/ApiMetadata/KubeApiMetadataCache.cs",
    "chars": 24374,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reflection;\nusing System.Threading;\nusin"
  },
  {
    "path": "src/KubeClient/ApiMetadata/KubeApiPathMetadata.cs",
    "chars": 1533,
    "preview": "using System;\nusing System.Collections.Generic;\n\nnamespace KubeClient.ApiMetadata\n{\n    /// <summary>\n    ///     Metada"
  },
  {
    "path": "src/KubeClient/ApiMetadata/KubeApiVerb.cs",
    "chars": 1304,
    "preview": "namespace KubeClient.ApiMetadata\n{\n    /// <summary>\n    ///     Well-known verbs supported by Kubernetes resource APIs."
  },
  {
    "path": "src/KubeClient/AssemblyVisibility.cs",
    "chars": 168,
    "preview": "using System.Runtime.CompilerServices;\n\n[assembly: InternalsVisibleTo(\"KubeClient.Tests\")]\n[assembly: InternalsVisibleTo"
  },
  {
    "path": "src/KubeClient/ClientFactoryExtensions.cs",
    "chars": 15954,
    "preview": "using System;\n\nnamespace KubeClient\n{\n    using ResourceClients;\n\n    /// <summary>\n    ///     Extension methods for cr"
  },
  {
    "path": "src/KubeClient/KubeApiClient.cs",
    "chars": 11932,
    "preview": "\nusing Microsoft.Extensions.Logging;\nusing System;\nusing System.Collections.Concurrent;\nusing System.Net.Http;\nusing Sys"
  },
  {
    "path": "src/KubeClient/KubeApiClientLoggingExtensions.cs",
    "chars": 886,
    "preview": "using Microsoft.Extensions.Logging;\nusing System;\n\nnamespace KubeClient\n{\n    /// <summary>\n    ///     Logging-related "
  },
  {
    "path": "src/KubeClient/KubeApiException.cs",
    "chars": 5162,
    "preview": "\nusing System;\n\nnamespace KubeClient\n{\n    using KubeClient.Http;\n    using Models;\n\n    /// <summary>\n    ///     Excep"
  },
  {
    "path": "src/KubeClient/KubeClient.csproj",
    "chars": 2425,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <TargetFrameworks>net7.0;net8.0;net9.0;net10.0;netstandard2.1</"
  },
  {
    "path": "src/KubeClient/KubeClientOptionsExtensions.cs",
    "chars": 11993,
    "preview": "using KubeClient.MessageHandlers;\nusing System;\n\nnamespace KubeClient\n{\n    using Http.Clients;\n    using Http.Diagnost"
  },
  {
    "path": "src/KubeClient/KubeResourceUpdateExtensions.cs",
    "chars": 5395,
    "preview": "using System;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace KubeClient\n{\n    using Models;\n    using "
  },
  {
    "path": "src/KubeClient/MessageHandlers/BasicAuthenticationHandler.cs",
    "chars": 1436,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Text"
  },
  {
    "path": "src/KubeClient/MessageHandlers/BearerTokenHandler.cs",
    "chars": 2029,
    "preview": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Threading;\nusing System.Threading.Tasks"
  },
  {
    "path": "src/KubeClient/MessageHandlers/CommandBearerTokenHandler.cs",
    "chars": 10491,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Globalization;\nusing System.Threa"
  },
  {
    "path": "src/KubeClient/MessageHandlers/StaticBearerTokenHandler.cs",
    "chars": 1513,
    "preview": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Threading;\nusing System.Threading.Tasks"
  },
  {
    "path": "src/KubeClient/Models/ContractResolvers/KubeContractResolver.cs",
    "chars": 984,
    "preview": "using Newtonsoft.Json.Serialization;\nusing System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Kube"
  },
  {
    "path": "src/KubeClient/Models/Converters/DynamicKubeObjectV1Converter.cs",
    "chars": 6540,
    "preview": "using Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\nusing System;\nusing System.Collections.Generic;\nusing System.Reflecti"
  },
  {
    "path": "src/KubeClient/Models/Converters/DynamicKubeResourceV1Converter.cs",
    "chars": 6309,
    "preview": "using Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\nusing System;\nusing System.Collections.Generic;\nusing System.Reflecti"
  },
  {
    "path": "src/KubeClient/Models/Converters/Int32OrStringV1Converter.cs",
    "chars": 4373,
    "preview": "using System;\nusing Newtonsoft.Json;\n\nnamespace KubeClient.Models.Converters\n{\n    /// <summary>\n    ///     JSON conver"
  },
  {
    "path": "src/KubeClient/Models/Converters/MicroTimeV1Converter.cs",
    "chars": 4661,
    "preview": "using System;\nusing Newtonsoft.Json;\n\nnamespace KubeClient.Models.Converters\n{\n    /// <summary>\n    ///     JSON conver"
  },
  {
    "path": "src/KubeClient/Models/Converters/ResourceEventV1Converter.cs",
    "chars": 10541,
    "preview": "using Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nus"
  },
  {
    "path": "src/KubeClient/Models/DeleteOptionsV1.cs",
    "chars": 2018,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n"
  },
  {
    "path": "src/KubeClient/Models/DeletePropagationPolicy.cs",
    "chars": 702,
    "preview": "namespace KubeClient.Models\n{\n    /// <summary>\n    ///     Well-known policies for propagating deletion of a resource t"
  },
  {
    "path": "src/KubeClient/Models/ExecCredentialV1Beta1.cs",
    "chars": 1443,
    "preview": "using System.Collections.Generic;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     The model for the respons"
  },
  {
    "path": "src/KubeClient/Models/IResourceEventV1.cs",
    "chars": 737,
    "preview": "namespace KubeClient.Models\n{\n    /// <summary>\n    ///     Represents the payload for a Kubernetes resource event.\n    "
  },
  {
    "path": "src/KubeClient/Models/Int32OrStringV1.cs",
    "chars": 15773,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing YamlDotNet.Core;\nusing YamlDotNet.Core.Events;\nusing YamlDotNet.Serialization"
  },
  {
    "path": "src/KubeClient/Models/JSONSchemaPropsOrBoolV1.cs",
    "chars": 819,
    "preview": "using Newtonsoft.Json;\nusing YamlDotNet.Serialization;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     JSO"
  },
  {
    "path": "src/KubeClient/Models/JSONSchemaPropsOrStringArrayV1.cs",
    "chars": 946,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing Syst"
  },
  {
    "path": "src/KubeClient/Models/JSONSchemaPropsV1.cs",
    "chars": 1075,
    "preview": "using Newtonsoft.Json;\nusing YamlDotNet.Serialization;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     JSO"
  },
  {
    "path": "src/KubeClient/Models/KubeActions.cs",
    "chars": 1542,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Well-known actions supported by Kubernetes r"
  },
  {
    "path": "src/KubeClient/Models/KubeApiAttribute.cs",
    "chars": 1221,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Declares the path for one or more Kubernetes "
  },
  {
    "path": "src/KubeClient/Models/KubeListItemAttribute.cs",
    "chars": 1495,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Mark a model class as representing a list who"
  },
  {
    "path": "src/KubeClient/Models/KubeObjectAttribute.cs",
    "chars": 1399,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Mark a model class as representing a Kubernet"
  },
  {
    "path": "src/KubeClient/Models/KubeObjectV1.cs",
    "chars": 4400,
    "preview": "using System;\nusing System.Collections.Concurrent;\nusing System.Reflection;\nusing Newtonsoft.Json;\nusing YamlDotNet.Seri"
  },
  {
    "path": "src/KubeClient/Models/KubeResourceListResultV1.cs",
    "chars": 5856,
    "preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace KubeClient.Model"
  },
  {
    "path": "src/KubeClient/Models/KubeResourceListV1.cs",
    "chars": 4499,
    "preview": "using System;\nusing System.Collections;\nusing System.Collections.Concurrent;\nusing System.Collections.Generic;\nusing Sys"
  },
  {
    "path": "src/KubeClient/Models/KubeResourceResultV1.cs",
    "chars": 4340,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Represents the result of a Kubernetes API ope"
  },
  {
    "path": "src/KubeClient/Models/KubeResourceV1.cs",
    "chars": 557,
    "preview": "using Newtonsoft.Json;\nusing YamlDotNet.Serialization;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     The "
  },
  {
    "path": "src/KubeClient/Models/KubeResultV1.cs",
    "chars": 1711,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Represents the result of a Kubernetes API ope"
  },
  {
    "path": "src/KubeClient/Models/MergeStrategyAttribute.cs",
    "chars": 735,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Marks a property as supporting merge when usi"
  },
  {
    "path": "src/KubeClient/Models/MicroTimeV1.cs",
    "chars": 2225,
    "preview": "using System;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\nusing System.Collections.Generic;\nusing YamlDotNet.Seri"
  },
  {
    "path": "src/KubeClient/Models/ModelExtensions.cs",
    "chars": 8283,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    "
  },
  {
    "path": "src/KubeClient/Models/ModelMetadata.cs",
    "chars": 20966,
    "preview": "using System;\nusing System.Reflection;\nusing System.Linq.Expressions;\nusing System.Linq;\nusing System.Collections.Concur"
  },
  {
    "path": "src/KubeClient/Models/ObjectMetaV1.cs",
    "chars": 951,
    "preview": "using Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nn"
  },
  {
    "path": "src/KubeClient/Models/PatchStrategies.cs",
    "chars": 647,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Represents field-level strategies for Kuberne"
  },
  {
    "path": "src/KubeClient/Models/PatchStrategyAttribute.cs",
    "chars": 454,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Base class for attributes representing proper"
  },
  {
    "path": "src/KubeClient/Models/QuantityResource.cs",
    "chars": 265,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n"
  },
  {
    "path": "src/KubeClient/Models/ResourceEventType.cs",
    "chars": 1113,
    "preview": "using System.Runtime.Serialization;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Well-known types of Kub"
  },
  {
    "path": "src/KubeClient/Models/ResourceEventV1.cs",
    "chars": 764,
    "preview": "using Newtonsoft.Json;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Represents the payload for a Kuberne"
  },
  {
    "path": "src/KubeClient/Models/RetainKeysStrategyAttribute.cs",
    "chars": 576,
    "preview": "using System;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n    ///     Marks a property as supporting merge when usi"
  },
  {
    "path": "src/KubeClient/Models/StatusV1.cs",
    "chars": 3234,
    "preview": "using System;\nusing System.Collections.Generic;\nusing Newtonsoft.Json;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/ThirdPartyResourceListV1Beta1.cs",
    "chars": 684,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n"
  },
  {
    "path": "src/KubeClient/Models/ThirdPartyResourceV1Beta1.cs",
    "chars": 953,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n"
  },
  {
    "path": "src/KubeClient/Models/TimeV1.cs",
    "chars": 245,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\n\nnamespace KubeClient.Models\n{\n    /// <summary>\n"
  },
  {
    "path": "src/KubeClient/Models/Yaml.cs",
    "chars": 10231,
    "preview": "using Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\nusing System;\nusing System.IO;\nusing System.Text;\nusing YamlDotNet.Se"
  },
  {
    "path": "src/KubeClient/Models/generated/APIGroupListV1.cs",
    "chars": 627,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIGroupV1.cs",
    "chars": 2547,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIResourceListV1.cs",
    "chars": 1081,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIResourceV1.cs",
    "chars": 4693,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceConditionV1.cs",
    "chars": 1780,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceConditionV1Beta1.cs",
    "chars": 1731,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceListV1.cs",
    "chars": 714,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceListV1Beta1.cs",
    "chars": 738,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceSpecV1.cs",
    "chars": 4414,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceSpecV1Beta1.cs",
    "chars": 4362,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceStatusV1.cs",
    "chars": 891,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceStatusV1Beta1.cs",
    "chars": 906,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceV1.cs",
    "chars": 2031,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIServiceV1Beta1.cs",
    "chars": 2111,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIVersionV1Beta1.cs",
    "chars": 561,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/APIVersionsV1.cs",
    "chars": 1678,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AWSElasticBlockStoreVolumeSourceV1.cs",
    "chars": 2388,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AffinityV1.cs",
    "chars": 1334,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AggregationRuleV1.cs",
    "chars": 1073,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AggregationRuleV1Alpha1.cs",
    "chars": 1079,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AggregationRuleV1Beta1.cs",
    "chars": 1078,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AllocationResultV1Alpha3.cs",
    "chars": 1700,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AllowedFlexVolumeV1Beta1.cs",
    "chars": 592,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AllowedHostPathV1Beta1.cs",
    "chars": 1262,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AppArmorProfileV1.cs",
    "chars": 1275,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AttachedVolumeV1.cs",
    "chars": 848,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AuditAnnotationV1.cs",
    "chars": 2403,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AuditAnnotationV1Alpha1.cs",
    "chars": 2409,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AuditAnnotationV1Beta1.cs",
    "chars": 2408,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AzureDiskVolumeSourceV1.cs",
    "chars": 2363,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AzureFilePersistentVolumeSourceV1.cs",
    "chars": 1637,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/AzureFileVolumeSourceV1.cs",
    "chars": 1251,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/BasicDeviceV1Alpha3.cs",
    "chars": 1737,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/BindingV1.cs",
    "chars": 904,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/BoundObjectReferenceV1.cs",
    "chars": 808,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CELDeviceSelectorV1Alpha3.cs",
    "chars": 3121,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSIDriverListV1.cs",
    "chars": 695,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSIDriverSpecV1.cs",
    "chars": 9594,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSIDriverV1.cs",
    "chars": 1599,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSINodeDriverV1.cs",
    "chars": 2988,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSINodeListV1.cs",
    "chars": 677,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSINodeSpecV1.cs",
    "chars": 781,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSINodeV1.cs",
    "chars": 1815,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSIPersistentVolumeSourceV1.cs",
    "chars": 5281,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSIStorageCapacityListV1.cs",
    "chars": 785,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSIStorageCapacityV1.cs",
    "chars": 5287,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CSIVolumeSourceV1.cs",
    "chars": 2708,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CapabilitiesV1.cs",
    "chars": 1219,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CephFSPersistentVolumeSourceV1.cs",
    "chars": 2704,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CephFSVolumeSourceV1.cs",
    "chars": 2699,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestConditionV1.cs",
    "chars": 3110,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestConditionV1Beta1.cs",
    "chars": 1402,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestListV1.cs",
    "chars": 860,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestListV1Beta1.cs",
    "chars": 799,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestSpecV1.cs",
    "chars": 7882,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestSpecV1Beta1.cs",
    "chars": 3079,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestStatusV1.cs",
    "chars": 2949,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestStatusV1Beta1.cs",
    "chars": 1216,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestV1.cs",
    "chars": 3494,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CertificateSigningRequestV1Beta1.cs",
    "chars": 2347,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CinderPersistentVolumeSourceV1.cs",
    "chars": 2042,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CinderVolumeSourceV1.cs",
    "chars": 2031,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClientIPConfigV1.cs",
    "chars": 768,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleBindingListV1.cs",
    "chars": 789,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleBindingListV1Alpha1.cs",
    "chars": 825,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleBindingListV1Beta1.cs",
    "chars": 819,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleBindingV1.cs",
    "chars": 2282,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleBindingV1Alpha1.cs",
    "chars": 2341,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleBindingV1Beta1.cs",
    "chars": 2327,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleListV1.cs",
    "chars": 726,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleListV1Alpha1.cs",
    "chars": 762,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleListV1Beta1.cs",
    "chars": 756,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleV1.cs",
    "chars": 2254,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleV1Alpha1.cs",
    "chars": 2140,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterRoleV1Beta1.cs",
    "chars": 2126,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterTrustBundleListV1Alpha1.cs",
    "chars": 833,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterTrustBundleProjectionV1.cs",
    "chars": 2397,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterTrustBundleSpecV1Alpha1.cs",
    "chars": 2380,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ClusterTrustBundleV1Alpha1.cs",
    "chars": 2420,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ComponentConditionV1.cs",
    "chars": 1506,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ComponentStatusListV1.cs",
    "chars": 781,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ComponentStatusV1.cs",
    "chars": 1128,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConditionV1.cs",
    "chars": 2790,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConfigMapEnvSourceV1.cs",
    "chars": 1235,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConfigMapKeySelectorV1.cs",
    "chars": 1295,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConfigMapListV1.cs",
    "chars": 683,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConfigMapNodeConfigSourceV1.cs",
    "chars": 2251,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConfigMapProjectionV1.cs",
    "chars": 2407,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConfigMapV1.cs",
    "chars": 3273,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ConfigMapVolumeSourceV1.cs",
    "chars": 3081,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerImageV1.cs",
    "chars": 1122,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerPortV1.cs",
    "chars": 2028,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerResizePolicyV1.cs",
    "chars": 1011,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerResourceMetricSourceV2.cs",
    "chars": 1578,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerResourceMetricStatusV2.cs",
    "chars": 1500,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerStateRunningV1.cs",
    "chars": 587,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerStateTerminatedV1.cs",
    "chars": 2307,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerStateV1.cs",
    "chars": 1250,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerStateWaitingV1.cs",
    "chars": 856,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerStatusV1.cs",
    "chars": 7399,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerUserV1.cs",
    "chars": 727,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ContainerV1.cs",
    "chars": 15570,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ControllerRevisionListV1.cs",
    "chars": 773,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ControllerRevisionListV1Beta1.cs",
    "chars": 803,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ControllerRevisionListV1Beta2.cs",
    "chars": 803,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ControllerRevisionV1.cs",
    "chars": 2601,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ControllerRevisionV1Beta1.cs",
    "chars": 2814,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/ControllerRevisionV1Beta2.cs",
    "chars": 2809,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CronJobListV1.cs",
    "chars": 655,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CronJobListV1Beta1.cs",
    "chars": 685,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CronJobListV2Alpha1.cs",
    "chars": 691,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CronJobSpecV1.cs",
    "chars": 4121,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CronJobSpecV1Beta1.cs",
    "chars": 3108,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CronJobSpecV2Alpha1.cs",
    "chars": 3080,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  },
  {
    "path": "src/KubeClient/Models/generated/CronJobStatusV1.cs",
    "chars": 1475,
    "preview": "using Newtonsoft.Json;\nusing System;\nusing System.Collections.Generic;\nusing YamlDotNet.Serialization;\n\nnamespace KubeCl"
  }
]

// ... and 1003 more files (download for full content)

About this extraction

This page contains the full source code of the tintoy/dotnet-kube-client GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1203 files (10.2 MB), approximately 2.7M tokens, and a symbol index with 3191 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!